diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-24 21:31:09 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2013-04-24 21:31:09 +0400 |
commit | dbeec2be86db5b4ba440175e59c52ff84eb98462 (patch) | |
tree | 8bedb75ea7937279d318b86f5eecc98f8e03a950 /source/blender/blenlib/BLI_threads.h | |
parent | 64e28b21ba8472f4fd822b918d6e7d7c1be87dcb (diff) |
Fix #34783: smoke simulation crash when changing frame while preview rendering.
Added a mutex lock for smoke data access. The render was already working with a
copy of the volume data, so it's just a short lock to copy things and should not
block the UI much.
Diffstat (limited to 'source/blender/blenlib/BLI_threads.h')
-rw-r--r-- | source/blender/blenlib/BLI_threads.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/source/blender/blenlib/BLI_threads.h b/source/blender/blenlib/BLI_threads.h index ec8e567c0ef..614cd4ee59d 100644 --- a/source/blender/blenlib/BLI_threads.h +++ b/source/blender/blenlib/BLI_threads.h @@ -92,9 +92,13 @@ typedef pthread_mutex_t ThreadMutex; #define BLI_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER void BLI_mutex_init(ThreadMutex *mutex); +void BLI_mutex_end(ThreadMutex *mutex); + +ThreadMutex *BLI_mutex_alloc(void); +void BLI_mutex_free(ThreadMutex *mutex); + void BLI_mutex_lock(ThreadMutex *mutex); void BLI_mutex_unlock(ThreadMutex *mutex); -void BLI_mutex_end(ThreadMutex *mutex); /* Spin Lock */ @@ -117,9 +121,13 @@ void BLI_spin_end(SpinLock *spin); typedef pthread_rwlock_t ThreadRWMutex; void BLI_rw_mutex_init(ThreadRWMutex *mutex); +void BLI_rw_mutex_end(ThreadRWMutex *mutex); + +ThreadRWMutex *BLI_rw_mutex_alloc(void); +void BLI_rw_mutex_free(ThreadRWMutex *mutex); + void BLI_rw_mutex_lock(ThreadRWMutex *mutex, int mode); void BLI_rw_mutex_unlock(ThreadRWMutex *mutex); -void BLI_rw_mutex_end(ThreadRWMutex *mutex); /* ThreadedWorker * |