================== WARNING: ThreadSanitizer: data race (pid=4512) Write of size 8 at 0x7b900006e040 by main thread: #0 MidiDriver_ADLIB::setTimerCallback(void*, void (*)(void*)) adlib.cpp:1671 (scummvm:x86_64+0x1003a383d) #1 Tinsel::MidiMusicPlayer::MidiMusicPlayer(Tinsel::TinselEngine*) music.cpp:518 (scummvm:x86_64+0x100098abc) #2 Tinsel::MidiMusicPlayer::MidiMusicPlayer(Tinsel::TinselEngine*) music.cpp:421 (scummvm:x86_64+0x100098b25) #3 Tinsel::TinselEngine::run() tinsel.cpp:1011 (scummvm:x86_64+0x100126720) #4 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:312 (scummvm:x86_64+0x1004cf475) #5 scummvm_main main.cpp:613 (scummvm:x86_64+0x1004cd0d4) #6 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Previous read of size 8 at 0x7b900006e040 by thread T7 (mutexes: write M3486, write M3742): #0 MidiDriver_ADLIB::onTimer() adlib.cpp:1636 (scummvm:x86_64+0x1003a250d) #1 Common::Functor0Mem::operator()() const func.h:397 (scummvm:x86_64+0x1003a7e5a) #2 OPL::EmulatedOPL::readBuffer(short*, int) fmopl.cpp:358 (scummvm:x86_64+0x1003bc349) #3 non-virtual thunk to OPL::EmulatedOPL::readBuffer(short*, int) fmopl.cpp (scummvm:x86_64+0x1003bc405) #4 Audio::CopyRateConverter::flow(Audio::AudioStream&, short*, unsigned int, unsigned short, unsigned short) rate.cpp:336 (scummvm:x86_64+0x1003f54e6) #5 Audio::Channel::mix(short*, unsigned int) mixer.cpp:655 (scummvm:x86_64+0x1003e351e) #6 Audio::MixerImpl::mixCallback(unsigned char*, unsigned int) mixer.cpp:311 (scummvm:x86_64+0x1003e31e4) #7 SdlMixerManager::callbackHandler(unsigned char*, int) sdl-mixer.cpp:191 (scummvm:x86_64+0x100491512) #8 SdlMixerManager::sdlCallback(void*, unsigned char*, int) sdl-mixer.cpp:198 (scummvm:x86_64+0x100491430) #9 outputCallback :2 (libSDL2-2.0.0.dylib:x86_64+0xe2c33) 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+0xeb48e) #2 virtual thunk to OSystem_SDL::delayMillis(unsigned int) sdl.cpp (scummvm:x86_64+0x1004a0214) #3 MidiDriver::sendGMReset() mididrv.cpp:449 (scummvm:x86_64+0x1003bf790) #4 Tinsel::MidiMusicPlayer::MidiMusicPlayer(Tinsel::TinselEngine*) music.cpp:516 (scummvm:x86_64+0x100098a73) #5 Tinsel::MidiMusicPlayer::MidiMusicPlayer(Tinsel::TinselEngine*) music.cpp:421 (scummvm:x86_64+0x100098b25) #6 Tinsel::TinselEngine::run() tinsel.cpp:1011 (scummvm:x86_64+0x100126720) #7 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:312 (scummvm:x86_64+0x1004cf475) #8 scummvm_main main.cpp:613 (scummvm:x86_64+0x1004cd0d4) #9 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Location is heap block of size 7248 at 0x7b900006e000 allocated by main thread: #0 operator new(unsigned long) :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82fed) #1 AdLibEmuMusicPlugin::createInstance(MidiDriver**, unsigned int) const adlib.cpp:2321 (scummvm:x86_64+0x1003a71fb) #2 MidiDriver::createMidi(unsigned int) mididrv.cpp:392 (scummvm:x86_64+0x1003bf5b1) #3 Audio::MidiPlayer::createDriver(int) midiplayer.cpp:64 (scummvm:x86_64+0x1003d5566) #4 Tinsel::MidiMusicPlayer::MidiMusicPlayer(Tinsel::TinselEngine*) music.cpp:508 (scummvm:x86_64+0x1000989c0) #5 Tinsel::MidiMusicPlayer::MidiMusicPlayer(Tinsel::TinselEngine*) music.cpp:421 (scummvm:x86_64+0x100098b25) #6 Tinsel::TinselEngine::run() tinsel.cpp:1011 (scummvm:x86_64+0x100126720) #7 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:312 (scummvm:x86_64+0x1004cf475) #8 scummvm_main main.cpp:613 (scummvm:x86_64+0x1004cd0d4) #9 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Mutex M3486 (0x7b100005cf40) 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+0xd5cab) #2 OSystem_SDL::initBackend() sdl.cpp:284 (scummvm:x86_64+0x10049d673) #3 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x10049888e) #4 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x1004957b9) #5 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100495842) #6 scummvm_main main.cpp:495 (scummvm:x86_64+0x1004ccc69) #7 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Mutex M3742 (0x7b100005d180) 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+0xd5cab) #2 SdlMutexInternal::SdlMutexInternal() sdl-mutex.cpp:34 (scummvm:x86_64+0x1004916e5) #3 createSdlMutexInternal() sdl-mutex.cpp:45 (scummvm:x86_64+0x1004916a6) #4 OSystem_SDL::createMutex() sdl.cpp:694 (scummvm:x86_64+0x1004a0011) #5 virtual thunk to OSystem_SDL::createMutex() sdl.cpp (scummvm:x86_64+0x1004a0088) #6 Common::Mutex::Mutex() mutex.cpp:30 (scummvm:x86_64+0x1005b510d) #7 Common::Mutex::Mutex() mutex.cpp:28 (scummvm:x86_64+0x1005b5165) #8 Audio::MixerImpl::MixerImpl(unsigned int, bool, unsigned int) mixer.cpp:180 (scummvm:x86_64+0x1003e2307) #9 Audio::MixerImpl::MixerImpl(unsigned int, bool, unsigned int) mixer.cpp:180 (scummvm:x86_64+0x1003e2542) #10 SdlMixerManager::init() sdl-mixer.cpp:110 (scummvm:x86_64+0x100490d49) #11 OSystem_SDL::initBackend() sdl.cpp:284 (scummvm:x86_64+0x10049d673) #12 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x10049888e) #13 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x1004957b9) #14 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100495842) #15 scummvm_main main.cpp:495 (scummvm:x86_64+0x1004ccc69) #16 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Thread T7 (tid=30705, 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+0xd57ab) #2 OSystem_SDL::initBackend() sdl.cpp:284 (scummvm:x86_64+0x10049d673) #3 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x10049888e) #4 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x1004957b9) #5 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100495842) #6 scummvm_main main.cpp:495 (scummvm:x86_64+0x1004ccc69) #7 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) SUMMARY: ThreadSanitizer: data race adlib.cpp:1671 in MidiDriver_ADLIB::setTimerCallback(void*, void (*)(void*)) ================== WARNING: ThreadSanitizer: data race (pid=4512) Read of size 1 at 0x7b240002d4a0 by thread T7 (mutexes: write M3486, write M3742): #0 Tinsel::PCMMusicPlayer::endOfData() const music.h:150 (scummvm:x86_64+0x10009d44d) #1 Audio::Channel::mix(short*, unsigned int) mixer.cpp:648 (scummvm:x86_64+0x1003e33a9) #2 Audio::MixerImpl::mixCallback(unsigned char*, unsigned int) mixer.cpp:311 (scummvm:x86_64+0x1003e31e4) #3 SdlMixerManager::callbackHandler(unsigned char*, int) sdl-mixer.cpp:191 (scummvm:x86_64+0x100491512) #4 SdlMixerManager::sdlCallback(void*, unsigned char*, int) sdl-mixer.cpp:198 (scummvm:x86_64+0x100491430) #5 outputCallback :2 (libSDL2-2.0.0.dylib:x86_64+0xe2c33) Previous write of size 1 at 0x7b240002d4a0 by main thread (mutexes: write M929847156725435520): #0 Tinsel::PCMMusicPlayer::stop() music.cpp:1138 (scummvm:x86_64+0x10009a194) #1 Tinsel::PCMMusicPlayer::setMusicSceneDetails(unsigned int, unsigned int, char const*) music.cpp:844 (scummvm:x86_64+0x10009b63c) #2 Tinsel::LoadScene(unsigned int, int) scene.cpp:319 (scummvm:x86_64+0x1000da382) #3 Tinsel::StartNewScene(unsigned int, int) scene.cpp:470 (scummvm:x86_64+0x1000d9cdc) #4 Tinsel::DoRestoreSceneFrame(Tinsel::SAVED_DATA*, int) savescn.cpp:349 (scummvm:x86_64+0x1000d5d70) #5 Tinsel::IsRestoringScene() savescn.cpp:442 (scummvm:x86_64+0x1000d5b2b) #6 Tinsel::ChangeScene(bool) tinsel.cpp:676 (scummvm:x86_64+0x1001242f8) #7 Tinsel::TinselEngine::NextGameCycle() tinsel.cpp:1164 (scummvm:x86_64+0x100127a87) #8 Tinsel::TinselEngine::run() tinsel.cpp:1115 (scummvm:x86_64+0x10012704d) #9 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:312 (scummvm:x86_64+0x1004cf475) #10 scummvm_main main.cpp:613 (scummvm:x86_64+0x1004cd0d4) #11 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Location is heap block of size 136 at 0x7b240002d480 allocated by main thread: #0 operator new(unsigned long) :3 (libclang_rt.tsan_osx_dynamic.dylib:x86_64h+0x82fed) #1 Tinsel::TinselEngine::run() tinsel.cpp:1012 (scummvm:x86_64+0x100126752) #2 runGame(Plugin const*, Plugin const*, OSystem&, Common::String const&) main.cpp:312 (scummvm:x86_64+0x1004cf475) #3 scummvm_main main.cpp:613 (scummvm:x86_64+0x1004cd0d4) #4 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Mutex M3486 (0x7b100005cf40) 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+0xd5cab) #2 OSystem_SDL::initBackend() sdl.cpp:284 (scummvm:x86_64+0x10049d673) #3 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x10049888e) #4 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x1004957b9) #5 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100495842) #6 scummvm_main main.cpp:495 (scummvm:x86_64+0x1004ccc69) #7 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Mutex M3742 (0x7b100005d180) 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+0xd5cab) #2 SdlMutexInternal::SdlMutexInternal() sdl-mutex.cpp:34 (scummvm:x86_64+0x1004916e5) #3 createSdlMutexInternal() sdl-mutex.cpp:45 (scummvm:x86_64+0x1004916a6) #4 OSystem_SDL::createMutex() sdl.cpp:694 (scummvm:x86_64+0x1004a0011) #5 virtual thunk to OSystem_SDL::createMutex() sdl.cpp (scummvm:x86_64+0x1004a0088) #6 Common::Mutex::Mutex() mutex.cpp:30 (scummvm:x86_64+0x1005b510d) #7 Common::Mutex::Mutex() mutex.cpp:28 (scummvm:x86_64+0x1005b5165) #8 Audio::MixerImpl::MixerImpl(unsigned int, bool, unsigned int) mixer.cpp:180 (scummvm:x86_64+0x1003e2307) #9 Audio::MixerImpl::MixerImpl(unsigned int, bool, unsigned int) mixer.cpp:180 (scummvm:x86_64+0x1003e2542) #10 SdlMixerManager::init() sdl-mixer.cpp:110 (scummvm:x86_64+0x100490d49) #11 OSystem_SDL::initBackend() sdl.cpp:284 (scummvm:x86_64+0x10049d673) #12 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x10049888e) #13 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x1004957b9) #14 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100495842) #15 scummvm_main main.cpp:495 (scummvm:x86_64+0x1004ccc69) #16 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) Mutex M929847156725435520 is already destroyed. Thread T7 (tid=30705, 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+0xd57ab) #2 OSystem_SDL::initBackend() sdl.cpp:284 (scummvm:x86_64+0x10049d673) #3 OSystem_POSIX::initBackend() posix.cpp:92 (scummvm:x86_64+0x10049888e) #4 OSystem_MacOSX::initBackend() macosx.cpp:121 (scummvm:x86_64+0x1004957b9) #5 virtual thunk to OSystem_MacOSX::initBackend() macosx.cpp (scummvm:x86_64+0x100495842) #6 scummvm_main main.cpp:495 (scummvm:x86_64+0x1004ccc69) #7 main macosx-main.cpp:44 (scummvm:x86_64+0x1004940aa) SUMMARY: ThreadSanitizer: data race music.h:150 in Tinsel::PCMMusicPlayer::endOfData() const ==================