diff options
author | Ton Roosendaal <ton@blender.org> | 2006-02-09 22:58:32 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-02-09 22:58:32 +0300 |
commit | 9c003086fefe5a205cc5a09c7c827c364038ec97 (patch) | |
tree | a765d7e88a5739a3cb0d08b3402cbef5349a1673 | |
parent | 5e3d30c276f33e57f4a8e726ec6593210ade0217 (diff) |
Potential thread render bug/crashing:
Discovered I forget to re-enable the 'imbuf load' and 'envmap' mutexes.
-rw-r--r-- | source/blender/render/intern/source/initrender.c | 6 | ||||
-rw-r--r-- | source/blender/render/intern/source/pipeline.c | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/source/blender/render/intern/source/initrender.c b/source/blender/render/intern/source/initrender.c index 19d593a9409..b01868a7875 100644 --- a/source/blender/render/intern/source/initrender.c +++ b/source/blender/render/intern/source/initrender.c @@ -661,12 +661,6 @@ void initparts(Render *re) } -/* ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */ - -// exported to other files, belongs in include... later -SDL_mutex *render_abuf_lock=NULL, *load_ibuf_lock=NULL; - - /* **************************************************************** */ /* sticky texture coords */ diff --git a/source/blender/render/intern/source/pipeline.c b/source/blender/render/intern/source/pipeline.c index 0fc94196192..2d14c15c6c8 100644 --- a/source/blender/render/intern/source/pipeline.c +++ b/source/blender/render/intern/source/pipeline.c @@ -107,7 +107,7 @@ Render R; /* ********* alloc and free ******** */ -SDL_mutex *malloc_lock= NULL; +SDL_mutex *malloc_lock= NULL, *load_ibuf_lock=NULL; void *RE_mallocN(int len, char *name) { @@ -756,7 +756,8 @@ static void threaded_tile_processor(Render *re) /* set threadsafety */ R.test_break= thread_break; - malloc_lock = SDL_CreateMutex(); + malloc_lock= SDL_CreateMutex(); + load_ibuf_lock= SDL_CreateMutex(); /* timer loop demands to sleep when no parts are left */ nextpa= find_next_part(re); @@ -809,6 +810,7 @@ static void threaded_tile_processor(Render *re) /* restore threadsafety */ if(malloc_lock) SDL_DestroyMutex(malloc_lock); malloc_lock= NULL; + if(load_ibuf_lock) SDL_DestroyMutex(load_ibuf_lock); load_ibuf_lock= NULL; g_break= 0; BLI_end_threads(&threads); |