diff options
author | Damien Plisson <damien.plisson@yahoo.fr> | 2009-12-17 20:05:28 +0300 |
---|---|---|
committer | Damien Plisson <damien.plisson@yahoo.fr> | 2009-12-17 20:05:28 +0300 |
commit | 1975ee5eecc17514b441fb9ac921063c38fcabc4 (patch) | |
tree | b17498faf199f276e843c30767d6b06577e3c9a1 /intern/elbeem | |
parent | 4271a40ee7a53029f04389234278b7f64d834a11 (diff) |
OSX vs OpenMP : implement workaround to fix crashes when using mop from a background thread
Fix# 20043 & 20392
The issue is that OSX lib does not implement TLS (Thread Local Storage), so libgomp uses pthread functions to read/write thread specific vars.
But this implementation is currently (gcc 4.2) buggy : the write function is called only at lib start (in main thread), and the var is undefined for background thread.
The workaround is to perform this gomp_tls_key var write at beginning of background threads that use openMP. (Currently: render & fluidsim)
Diffstat (limited to 'intern/elbeem')
-rw-r--r-- | intern/elbeem/CMakeLists.txt | 4 | ||||
-rw-r--r-- | intern/elbeem/SConscript | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/intern/elbeem/CMakeLists.txt b/intern/elbeem/CMakeLists.txt index b59554e5709..e541d334086 100644 --- a/intern/elbeem/CMakeLists.txt +++ b/intern/elbeem/CMakeLists.txt @@ -33,9 +33,9 @@ IF(WINDOWS) ADD_DEFINITIONS(-DUSE_MSVC6FIXES) ENDIF(WINDOWS) -IF(WITH_OPENMP AND NOT APPLE) +IF(WITH_OPENMP) ADD_DEFINITIONS(-DPARALLEL=1) -ENDIF(WITH_OPENMP AND NOT APPLE) +ENDIF(WITH_OPENMP) BLENDERLIB_NOLIST(bf_elbeem "${SRC}" "${INC}") #, libtype='blender', priority=0 ) diff --git a/intern/elbeem/SConscript b/intern/elbeem/SConscript index ef411d0eb03..0900ab1db5c 100644 --- a/intern/elbeem/SConscript +++ b/intern/elbeem/SConscript @@ -8,8 +8,7 @@ sources = env.Glob('intern/*.cpp') defs = 'NOGUI ELBEEM_BLENDER=1' if env['WITH_BF_OPENMP']: - if env['OURPLATFORM'] != 'darwin': - defs += ' PARALLEL' + defs += ' PARALLEL' if env['OURPLATFORM'] in ('win32-vc', 'win64-vc'): defs += ' USE_MSVC6FIXES' |