================== WARNING: ThreadSanitizer: data race (pid=14278) Write of size 4 at 0x7b28000126b0 by main thread: #0 Saga::Music::setVolume(int, int) music.cpp:274 (scummvm:x86_64+0x1000b6950) #1 Saga::Music::resetVolume() music.cpp:301 (scummvm:x86_64+0x1000b6bbf) #2 Saga::Music::play(unsigned int, Saga::MusicFlags) music.cpp:339 (scummvm:x86_64+0x1000b7038) #3 Saga::Script::sfPlayMusic(Saga::ScriptThread*, int, bool&) sfuncs.cpp:1327 (scummvm:x86_64+0x1000f31dd) #4 Saga::Script::opCcallV(Saga::ScriptThread*, Common::SeekableReadStream*, bool&, bool&) script.cpp:467 (scummvm:x86_64+0x1000e1e3e) #5 Saga::Script::runThread(Saga::ScriptThread&) sthread.cpp:210 (scummvm:x86_64+0x1000ff78f) #6 Saga::Script::executeThreads(unsigned int) sthread.cpp:158 (scummvm:x86_64+0x1000ff2fa) #7 Saga::SagaEngine::run() saga.cpp:528 (scummvm:x86_64+0x1000cbe60) #8 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:318 (scummvm:x86_64+0x100023213) #9 scummvm_main main.cpp:758 (scummvm:x86_64+0x100020d34) #10 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) Previous read of size 4 at 0x7b28000126b0 by thread T17 (mutexes: write M3602): #0 Saga::Music::musicVolumeGauge() music.cpp:255 (scummvm:x86_64+0x1000b67c5) #1 Saga::Music::musicVolumeGaugeCallback(void*) music.cpp:224 (scummvm:x86_64+0x1000b63e5) #2 DefaultTimerManager::handler() default-timer.cpp:110 (scummvm:x86_64+0x100256055) #3 timer_handler(unsigned int, void*) sdl-timer.cpp:32 (scummvm:x86_64+0x1002ae78e) #4 SDL_TimerThread :2 (libSDL2-2.0.0.dylib:x86_64+0x6628d) As if synchronized via sleep: #0 nanosleep :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2cb25) #1 SDL_Delay_REAL :2 (libSDL2-2.0.0.dylib:x86_64+0xf1566) #2 virtual thunk to OSystem_SDL::delayMillis(unsigned int) sdl.cpp (scummvm:x86_64+0x10000b6e4) #3 Saga::SagaEngine::run() saga.cpp:532 (scummvm:x86_64+0x1000cbec2) #4 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:318 (scummvm:x86_64+0x100023213) #5 scummvm_main main.cpp:758 (scummvm:x86_64+0x100020d34) #6 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) Location is heap block of size 152 at 0x7b2800012660 allocated by main thread: #0 operator new(unsigned long) :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82fed) #1 Saga::SagaEngine::run() saga.cpp:433 (scummvm:x86_64+0x1000cb10b) #2 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:318 (scummvm:x86_64+0x100023213) #3 scummvm_main main.cpp:758 (scummvm:x86_64+0x100020d34) #4 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) Mutex M3602 (0x7b10000277c0) created at: #0 pthread_mutex_init :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2ee85) #1 SDL_CreateMutex_REAL :2 (libSDL2-2.0.0.dylib:x86_64+0xd5e1b) #2 SdlMutexInternal::SdlMutexInternal() sdl-mutex.cpp:34 (scummvm:x86_64+0x1002ae405) #3 createSdlMutexInternal() sdl-mutex.cpp:45 (scummvm:x86_64+0x1002ae3c6) #4 OSystem_SDL::createMutex() sdl.cpp:694 (scummvm:x86_64+0x10000b4e1) #5 virtual thunk to OSystem_SDL::createMutex() sdl.cpp (scummvm:x86_64+0x10000b558) #6 Common::Mutex::Mutex() mutex.cpp:30 (scummvm:x86_64+0x1005cbbfd) #7 Common::Mutex::Mutex() mutex.cpp:28 (scummvm:x86_64+0x1005cbc55) #8 DefaultTimerManager::DefaultTimerManager() default-timer.cpp:63 (scummvm:x86_64+0x1002558d8) #9 SdlTimerManager::SdlTimerManager() sdl-timer.cpp:36 (scummvm:x86_64+0x1002ae6c9) #10 SdlTimerManager::SdlTimerManager() sdl-timer.cpp:36 (scummvm:x86_64+0x1002ae7d5) #11 OSystem_SDL::initBackend() sdl.cpp:293 (scummvm:x86_64+0x100008211) #12 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x100013f3e) #13 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x100016bd2) #14 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100016c32) #15 scummvm_main main.cpp:564 (scummvm:x86_64+0x100020750) #16 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) Thread T17 (tid=70400, running) created by main thread at: #0 pthread_create :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2dd7f) #1 SDL_SYS_CreateThread :2 (libSDL2-2.0.0.dylib:x86_64+0xd591b) #2 SdlTimerManager::SdlTimerManager() sdl-timer.cpp:36 (scummvm:x86_64+0x1002ae7d5) #3 OSystem_SDL::initBackend() sdl.cpp:293 (scummvm:x86_64+0x100008211) #4 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x100013f3e) #5 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x100016bd2) #6 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100016c32) #7 scummvm_main main.cpp:564 (scummvm:x86_64+0x100020750) #8 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) SUMMARY: ThreadSanitizer: data race music.cpp:274 in Saga::Music::setVolume(int, int) ================== ================== WARNING: ThreadSanitizer: data race (pid=14278) Read of size 4 at 0x7b28000126a8 by thread T17 (mutexes: write M3602): #0 Saga::Music::musicVolumeGauge() music.cpp:235 (scummvm:x86_64+0x1000b65ff) #1 Saga::Music::musicVolumeGaugeCallback(void*) music.cpp:224 (scummvm:x86_64+0x1000b63e5) #2 DefaultTimerManager::handler() default-timer.cpp:110 (scummvm:x86_64+0x100256055) #3 timer_handler(unsigned int, void*) sdl-timer.cpp:32 (scummvm:x86_64+0x1002ae78e) #4 SDL_TimerThread :2 (libSDL2-2.0.0.dylib:x86_64+0x6628d) Previous write of size 4 at 0x7b28000126a8 by main thread: #0 Saga::Music::setVolume(int, int) music.cpp:262 (scummvm:x86_64+0x1000b6896) #1 Saga::Music::resetVolume() music.cpp:301 (scummvm:x86_64+0x1000b6bbf) #2 Saga::Music::play(unsigned int, Saga::MusicFlags) music.cpp:339 (scummvm:x86_64+0x1000b7038) #3 Saga::Script::sfPlayMusic(Saga::ScriptThread*, int, bool&) sfuncs.cpp:1327 (scummvm:x86_64+0x1000f31dd) #4 Saga::Script::opCcallV(Saga::ScriptThread*, Common::SeekableReadStream*, bool&, bool&) script.cpp:467 (scummvm:x86_64+0x1000e1e3e) #5 Saga::Script::runThread(Saga::ScriptThread&) sthread.cpp:210 (scummvm:x86_64+0x1000ff78f) #6 Saga::Script::executeThreads(unsigned int) sthread.cpp:158 (scummvm:x86_64+0x1000ff2fa) #7 Saga::SagaEngine::run() saga.cpp:528 (scummvm:x86_64+0x1000cbe60) #8 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:318 (scummvm:x86_64+0x100023213) #9 scummvm_main main.cpp:758 (scummvm:x86_64+0x100020d34) #10 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) Location is heap block of size 152 at 0x7b2800012660 allocated by main thread: #0 operator new(unsigned long) :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82fed) #1 Saga::SagaEngine::run() saga.cpp:433 (scummvm:x86_64+0x1000cb10b) #2 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:318 (scummvm:x86_64+0x100023213) #3 scummvm_main main.cpp:758 (scummvm:x86_64+0x100020d34) #4 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) Mutex M3602 (0x7b10000277c0) created at: #0 pthread_mutex_init :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2ee85) #1 SDL_CreateMutex_REAL :2 (libSDL2-2.0.0.dylib:x86_64+0xd5e1b) #2 SdlMutexInternal::SdlMutexInternal() sdl-mutex.cpp:34 (scummvm:x86_64+0x1002ae405) #3 createSdlMutexInternal() sdl-mutex.cpp:45 (scummvm:x86_64+0x1002ae3c6) #4 OSystem_SDL::createMutex() sdl.cpp:694 (scummvm:x86_64+0x10000b4e1) #5 virtual thunk to OSystem_SDL::createMutex() sdl.cpp (scummvm:x86_64+0x10000b558) #6 Common::Mutex::Mutex() mutex.cpp:30 (scummvm:x86_64+0x1005cbbfd) #7 Common::Mutex::Mutex() mutex.cpp:28 (scummvm:x86_64+0x1005cbc55) #8 DefaultTimerManager::DefaultTimerManager() default-timer.cpp:63 (scummvm:x86_64+0x1002558d8) #9 SdlTimerManager::SdlTimerManager() sdl-timer.cpp:36 (scummvm:x86_64+0x1002ae6c9) #10 SdlTimerManager::SdlTimerManager() sdl-timer.cpp:36 (scummvm:x86_64+0x1002ae7d5) #11 OSystem_SDL::initBackend() sdl.cpp:293 (scummvm:x86_64+0x100008211) #12 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x100013f3e) #13 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x100016bd2) #14 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100016c32) #15 scummvm_main main.cpp:564 (scummvm:x86_64+0x100020750) #16 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) Thread T17 (tid=70400, running) created by main thread at: #0 pthread_create :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x2dd7f) #1 SDL_SYS_CreateThread :2 (libSDL2-2.0.0.dylib:x86_64+0xd591b) #2 SdlTimerManager::SdlTimerManager() sdl-timer.cpp:36 (scummvm:x86_64+0x1002ae7d5) #3 OSystem_SDL::initBackend() sdl.cpp:293 (scummvm:x86_64+0x100008211) #4 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x100013f3e) #5 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x100016bd2) #6 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100016c32) #7 scummvm_main main.cpp:564 (scummvm:x86_64+0x100020750) #8 main macosx-main.cpp:44 (scummvm:x86_64+0x1000163ca) SUMMARY: ThreadSanitizer: data race music.cpp:235 in Saga::Music::musicVolumeGauge() ==================