From 0bb6bfe0b08eb9fc2ba62f64bdb21cb5b592c292 Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Mon, 26 Oct 2009 00:54:15 +0000 Subject: Fix some concurrency mistakes. TODO: eliminate the too_late field on canvases. --- libdimension/raytrace.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'libdimension/raytrace.c') diff --git a/libdimension/raytrace.c b/libdimension/raytrace.c index bb88940..6cb6d8b 100644 --- a/libdimension/raytrace.c +++ b/libdimension/raytrace.c @@ -133,7 +133,7 @@ dmnsn_raytrace_scene_multithread(dmnsn_raytrace_payload *payload) dmnsn_new_progress_element(payload->progress, nthreads*payload->scene->canvas->y); - /* Create the threads */ + /* Create the payloads */ for (i = 0; i < nthreads; ++i) { payloads[i] = *payload; payloads[i].index = i; @@ -142,7 +142,10 @@ dmnsn_raytrace_scene_multithread(dmnsn_raytrace_payload *payload) payloads[i].kD_splay_tree = dmnsn_kD_splay_copy(payloads[0].kD_splay_tree); } + } + /* Create the threads */ + for (i = 0; i < nthreads; ++i) { if (pthread_create(&threads[i], NULL, &dmnsn_raytrace_scene_multithread_thread, &payloads[i]) != 0) -- cgit v1.2.3