From 0acff566213fdddbc8f4561887aced121f82dc26 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Wed, 23 Apr 2014 18:12:53 -0400 Subject: future: Add a race-free way to examine a partial computation. This allows safe OpenGL previews, for example. dmnsn_future* learned the dmnsn_future_{pause,resume}() functions which cause all worker threads to block. render.test now survives Helgrind with no errors. --- libdimension/ray_trace.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'libdimension/ray_trace.c') diff --git a/libdimension/ray_trace.c b/libdimension/ray_trace.c index 7587e2c..c9f7da4 100644 --- a/libdimension/ray_trace.c +++ b/libdimension/ray_trace.c @@ -1,5 +1,5 @@ /************************************************************************* - * Copyright (C) 2010-2012 Tavian Barnes * + * Copyright (C) 2010-2014 Tavian Barnes * * * * This file is part of The Dimension Library. * * * @@ -89,7 +89,8 @@ dmnsn_ray_trace_scene_thread(void *ptr) /* Time the render itself */ dmnsn_timer_start(&payload->scene->render_timer); - int ret = dmnsn_execute_concurrently(dmnsn_ray_trace_scene_concurrent, + int ret = dmnsn_execute_concurrently(payload->future, + dmnsn_ray_trace_scene_concurrent, payload, payload->scene->nthreads); dmnsn_timer_stop(&payload->scene->render_timer); -- cgit v1.2.3