We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SoundDevicePortAudio::close() vs SoundDevicePortAudio::writeProcess(long)
================== WARNING: ThreadSanitizer: data race (pid=48840) Write of size 8 at 0x00011265c088 by main thread (mutexes: write M0): #0 SoundDevicePortAudio::close() sounddeviceportaudio.cpp:405 (mixxx:arm64+0x101170164) #1 SoundManager::closeDevices(bool) soundmanager.cpp:156 (mixxx:arm64+0x101175cf4) #2 SoundManager::clearDeviceList(bool) soundmanager.cpp:208 (mixxx:arm64+0x10117557c) #3 SoundManager::~SoundManager() soundmanager.cpp:92 (mixxx:arm64+0x1011753b8) #4 SoundManager::~SoundManager() soundmanager.cpp:89 (mixxx:arm64+0x10117562c) #5 void std::__1::__destroy_at[abi:v160006]<SoundManager, 0>(SoundManager*) construct_at.h:66 (mixxx:arm64+0x100649058) #6 void std::__1::destroy_at[abi:v160006]<SoundManager, 0>(SoundManager*) construct_at.h:101 (mixxx:arm64+0x100649004) #7 void std::__1::allocator_traits<std::__1::allocator<SoundManager>>::destroy[abi:v160006]<SoundManager, void, void>(std::__1::allocator<SoundManager>&, SoundManager*) allocator_traits.h:323 (mixxx:arm64+0x100648fb0) #8 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__on_zero_shared() shared_ptr.h:305 (mixxx:arm64+0x100648c90) #9 std::__1::__shared_count::__release_shared[abi:v160006]() shared_ptr.h:157 (mixxx:arm64+0x100015dc0) #10 std::__1::__shared_weak_count::__release_shared[abi:v160006]() shared_ptr.h:198 (mixxx:arm64+0x100015d3c) #11 std::__1::shared_ptr<SoundManager>::~shared_ptr[abi:v160006]() shared_ptr.h:745 (mixxx:arm64+0x100640148) #12 std::__1::shared_ptr<SoundManager>::~shared_ptr[abi:v160006]() shared_ptr.h:743 (mixxx:arm64+0x100634b8c) #13 std::__1::shared_ptr<SoundManager>::reset[abi:v160006]() shared_ptr.h:812 (mixxx:arm64+0x10065a134) #14 void (anonymous namespace)::clearHelper<SoundManager>(std::__1::shared_ptr<SoundManager>&, char const*) coreservices.cpp:72 (mixxx:arm64+0x10063b610) #15 mixxx::CoreServices::finalize() coreservices.cpp:568 (mixxx:arm64+0x1006355d8) #16 mixxx::CoreServices::~CoreServices() coreservices.cpp:133 (mixxx:arm64+0x100634dbc) #17 mixxx::CoreServices::~CoreServices() coreservices.cpp:131 (mixxx:arm64+0x100636988) #18 void std::__1::__destroy_at[abi:v160006]<mixxx::CoreServices, 0>(mixxx::CoreServices*) construct_at.h:66 (mixxx:arm64+0x10001558c) #19 void std::__1::destroy_at[abi:v160006]<mixxx::CoreServices, 0>(mixxx::CoreServices*) construct_at.h:101 (mixxx:arm64+0x100015538) #20 void std::__1::allocator_traits<std::__1::allocator<mixxx::CoreServices>>::destroy[abi:v160006]<mixxx::CoreServices, void, void>(std::__1::allocator<mixxx::CoreServices>&, mixxx::CoreServices*) allocator_traits.h:323 (mixxx:arm64+0x1000154e4) #21 std::__1::__shared_ptr_emplace<mixxx::CoreServices, std::__1::allocator<mixxx::CoreServices>>::__on_zero_shared() shared_ptr.h:305 (mixxx:arm64+0x100015160) #22 std::__1::__shared_count::__release_shared[abi:v160006]() shared_ptr.h:157 (mixxx:arm64+0x100015dc0) #23 std::__1::__shared_weak_count::__release_shared[abi:v160006]() shared_ptr.h:198 (mixxx:arm64+0x100015d3c) #24 std::__1::shared_ptr<mixxx::CoreServices>::~shared_ptr[abi:v160006]() shared_ptr.h:745 (mixxx:arm64+0x100015ce8) #25 std::__1::shared_ptr<mixxx::CoreServices>::~shared_ptr[abi:v160006]() shared_ptr.h:743 (mixxx:arm64+0x100013f48) #26 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:112 (mixxx:arm64+0x100011198) #27 main main.cpp:243 (mixxx:arm64+0x10000ff08) Previous read of size 8 at 0x00011265c088 by thread T71 (mutexes: write M1, write M2): #0 SoundDevicePortAudio::writeProcess(long) sounddeviceportaudio.cpp:589 (mixxx:arm64+0x101170fe0) #1 SoundManager::writeProcess(long) const soundmanager.cpp:618 (mixxx:arm64+0x10117aed4) #2 SoundDevicePortAudio::callbackProcessClkRef(long, float*, float const*, PaStreamCallbackTimeInfo const*, unsigned long) sounddeviceportaudio.cpp:1016 (mixxx:arm64+0x101172bf4) #3 (anonymous namespace)::paV19CallbackClkRef(void const*, void*, unsigned long, PaStreamCallbackTimeInfo const*, unsigned long, void*) sounddeviceportaudio.cpp:69 (mixxx:arm64+0x10116fe5c) #4 AdaptingOutputOnlyProcess <null>:230508612 (mixxx:arm64+0x10210fed4) #5 PaUtil_EndBufferProcessing <null>:230508612 (mixxx:arm64+0x10210e09c) #6 AudioIOProc <null>:230508612 (mixxx:arm64+0x1021185a8) #7 <null> <null>:230508612 (CoreAudio:arm64e+0xa8d8) Location is heap block of size 400 at 0x00011265bfc0 allocated by main thread: #0 operator new(unsigned long) <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x83de0) #1 SoundManager::queryDevicesPortaudio() soundmanager.cpp:307 (mixxx:arm64+0x10117709c) #2 SoundManager::queryDevices() soundmanager.cpp:239 (mixxx:arm64+0x1011750c4) #3 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:77 (mixxx:arm64+0x101174b18) #4 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:59 (mixxx:arm64+0x101175324) #5 SoundManager* std::__1::construct_at[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, SoundManager*>(SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) construct_at.h:38 (mixxx:arm64+0x100648e68) #6 void std::__1::allocator_traits<std::__1::allocator<SoundManager>>::construct[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void, void>(std::__1::allocator<SoundManager>&, SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) allocator_traits.h:304 (mixxx:arm64+0x100648b48) #7 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:284 (mixxx:arm64+0x1006489e4) #8 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:276 (mixxx:arm64+0x10064842c) #9 std::__1::shared_ptr<SoundManager> std::__1::allocate_shared[abi:v160006]<SoundManager, std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(std::__1::allocator<SoundManager> const&, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:995 (mixxx:arm64+0x100648240) #10 std::__1::shared_ptr<SoundManager> std::__1::make_shared[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:1004 (mixxx:arm64+0x100639118) #11 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:274 (mixxx:arm64+0x1006373ec) #12 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc) #13 main main.cpp:243 (mixxx:arm64+0x10000ff08) Mutex M0 (0x000113b16468) created at: #0 pthread_mutex_init <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x30e30) #1 <null> <null>:230508612 (CoreAudio:arm64e+0x7041c) #2 AudioUnitManager::AudioUnitManager(AVAudioUnitComponent*, AudioUnitInstantiationType) audiounitmanager.mm:22 (mixxx:arm64+0x1015d7a0c) #3 AudioUnitManager::AudioUnitManager(AVAudioUnitComponent*, AudioUnitInstantiationType) audiounitmanager.mm:11 (mixxx:arm64+0x1015d7f24) #4 AudioUnitManifest::AudioUnitManifest(QString const&, AVAudioUnitComponent*) audiounitmanifest.mm:23 (mixxx:arm64+0x1015deeec) #5 AudioUnitManifest::AudioUnitManifest(QString const&, AVAudioUnitComponent*) audiounitmanifest.mm:12 (mixxx:arm64+0x1015df7b4) #6 AudioUnitBackend::loadAudioUnits() audiounitbackend.mm:102 (mixxx:arm64+0x1015cd8ec) #7 AudioUnitBackend::AudioUnitBackend() audiounitbackend.mm:22 (mixxx:arm64+0x1015cd3b0) #8 AudioUnitBackend::AudioUnitBackend() audiounitbackend.mm:21 (mixxx:arm64+0x1015cd268) #9 createAudioUnitBackend() audiounitbackend.mm:111 (mixxx:arm64+0x1015cd1c0) #10 EffectsBackendManager::EffectsBackendManager() effectsbackendmanager.cpp:22 (mixxx:arm64+0x1007ce754) #11 EffectsBackendManager::EffectsBackendManager() effectsbackendmanager.cpp:15 (mixxx:arm64+0x1007cee80) #12 EffectsManager::EffectsManager(QSharedPointer<ConfigObject<ConfigValue>>, std::__1::shared_ptr<ChannelHandleFactory>) effectsmanager.cpp:34 (mixxx:arm64+0x10082a184) #13 EffectsManager::EffectsManager(QSharedPointer<ConfigObject<ConfigValue>>, std::__1::shared_ptr<ChannelHandleFactory>) effectsmanager.cpp:31 (mixxx:arm64+0x10082b660) #14 EffectsManager* std::__1::construct_at[abi:v160006]<EffectsManager, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, EffectsManager*>(EffectsManager*, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) construct_at.h:38 (mixxx:arm64+0x100646500) #15 void std::__1::allocator_traits<std::__1::allocator<EffectsManager>>::construct[abi:v160006]<EffectsManager, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, void, void>(std::__1::allocator<EffectsManager>&, EffectsManager*, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) allocator_traits.h:304 (mixxx:arm64+0x1006461e0) #16 std::__1::__shared_ptr_emplace<EffectsManager, std::__1::allocator<EffectsManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&>(std::__1::allocator<EffectsManager>, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:284 (mixxx:arm64+0x10064607c) #17 std::__1::__shared_ptr_emplace<EffectsManager, std::__1::allocator<EffectsManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&>(std::__1::allocator<EffectsManager>, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:276 (mixxx:arm64+0x100645ac4) #18 std::__1::shared_ptr<EffectsManager> std::__1::allocate_shared[abi:v160006]<EffectsManager, std::__1::allocator<EffectsManager>, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, void>(std::__1::allocator<EffectsManager> const&, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:995 (mixxx:arm64+0x1006458d8) #19 std::__1::shared_ptr<EffectsManager> std::__1::make_shared[abi:v160006]<EffectsManager, QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&, void>(QSharedPointer<ConfigObject<ConfigValue>>&, std::__1::shared_ptr<ChannelHandleFactory>&) shared_ptr.h:1004 (mixxx:arm64+0x100638ea4) #20 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:262 (mixxx:arm64+0x1006372e0) #21 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc) #22 main main.cpp:243 (mixxx:arm64+0x10000ff08) Mutex M1 (0x000132118e18) created at: #0 pthread_mutex_init <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x30e30) #1 HALB_Mutex::HALB_Mutex() <null>:230508612 (CoreAudio:arm64e+0x582f70) #2 Pa_Initialize <null>:230508612 (mixxx:arm64+0x10210b61c) #3 SoundManager::queryDevicesPortaudio() soundmanager.cpp:261 (mixxx:arm64+0x101176d00) #4 SoundManager::queryDevices() soundmanager.cpp:239 (mixxx:arm64+0x1011750c4) #5 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:77 (mixxx:arm64+0x101174b18) #6 SoundManager::SoundManager(QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*) soundmanager.cpp:59 (mixxx:arm64+0x101175324) #7 SoundManager* std::__1::construct_at[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, SoundManager*>(SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) construct_at.h:38 (mixxx:arm64+0x100648e68) #8 void std::__1::allocator_traits<std::__1::allocator<SoundManager>>::construct[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void, void>(std::__1::allocator<SoundManager>&, SoundManager*, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) allocator_traits.h:304 (mixxx:arm64+0x100648b48) #9 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:284 (mixxx:arm64+0x1006489e4) #10 std::__1::__shared_ptr_emplace<SoundManager, std::__1::allocator<SoundManager>>::__shared_ptr_emplace[abi:v160006]<QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*>(std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:276 (mixxx:arm64+0x10064842c) #11 std::__1::shared_ptr<SoundManager> std::__1::allocate_shared[abi:v160006]<SoundManager, std::__1::allocator<SoundManager>, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(std::__1::allocator<SoundManager> const&, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:995 (mixxx:arm64+0x100648240) #12 std::__1::shared_ptr<SoundManager> std::__1::make_shared[abi:v160006]<SoundManager, QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*, void>(QSharedPointer<ConfigObject<ConfigValue>>&, EngineMixer*&&) shared_ptr.h:1004 (mixxx:arm64+0x100639118) #13 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:274 (mixxx:arm64+0x1006373ec) #14 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc) #15 main main.cpp:243 (mixxx:arm64+0x10000ff08) Mutex M2 (0x000113b29b60) created at: #0 pthread_mutex_init <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x30e30) #1 CADeprecated::CAMutex::CAMutex(char const*) <null>:230508612 (libAudioToolboxUtility.dylib:arm64e+0x2920c) #2 OpenStream <null>:230508612 (mixxx:arm64+0x102115abc) #3 Pa_OpenStream <null>:230508612 (mixxx:arm64+0x10210c704) #4 SoundDevicePortAudio::open(bool, int) sounddeviceportaudio.cpp:338 (mixxx:arm64+0x10116f380) #5 SoundManager::setupDevices() soundmanager.cpp:475 (mixxx:arm64+0x101178660) #6 MixxxMainWindow::initialize() mixxxmainwindow.cpp:346 (mixxx:arm64+0x100f321e4) #7 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MixxxMainWindow::*)()>::call(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f46a14) #8 void QtPrivate::FunctionPointer<void (MixxxMainWindow::*)()>::call<QtPrivate::List<>, void>(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f468e0) #9 QtPrivate::QSlotObject<void (MixxxMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f46744) #10 void doActivate<false>(QObject*, int, void**) <null>:230508612 (mixxx:arm64+0x10011ef08) #11 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <null>:230508612 (mixxx:arm64+0x10011db88) #12 WInitialGLWidget::onInitialized() moc_winitialglwidget.cpp:160 (mixxx:arm64+0x1015c2d78) #13 WInitialGLWidget::initializeGL() winitialglwidget.cpp:17 (mixxx:arm64+0x1015c3294) #14 OpenGLWindow::initializeGL() openglwindow.cpp:31 (mixxx:arm64+0x1015c00b8) #15 QOpenGLWindowPrivate::initialize() <null>:230508612 (mixxx:arm64+0x1044fcd88) #16 QOpenGLWindow::resizeEvent(QResizeEvent*) <null>:230508612 (mixxx:arm64+0x1044fdd78) #17 QWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104cdbd1c) #18 QPaintDeviceWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104ca4814) #19 OpenGLWindow::event(QEvent*) openglwindow.cpp:70 (mixxx:arm64+0x1015c03fc) #20 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc) #21 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184) #22 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc) #23 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec) #24 QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4f08) #25 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) <null>:230508612 (mixxx:arm64+0x104c8a1b4) #26 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) <null>:230508612 (mixxx:arm64+0x104c86310) #27 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3884) #28 QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3304) #29 QCocoaWindow::handleGeometryChange() <null>:230508612 (mixxx:arm64+0x101c7da5c) #30 QWindow::show() <null>:230508612 (mixxx:arm64+0x104cd2c24) #31 QWindowContainer::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102299710) #32 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc) #33 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364) #34 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc) #35 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec) #36 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8) #37 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0) #38 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10) #39 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0) #40 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8) #41 WGLWidget::showEvent(QShowEvent*) wglwidgetqopengl.cpp:44 (mixxx:arm64+0x1015c2698) #42 QWidget::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102276240) #43 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc) #44 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364) #45 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc) #46 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec) #47 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8) #48 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0) #49 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10) #50 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0) #51 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8) #52 MixxxMainWindow::initializeQOpenGL() mixxxmainwindow.cpp:161 (mixxx:arm64+0x100f30e64) #53 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:92 (mixxx:arm64+0x100010fd8) #54 main main.cpp:243 (mixxx:arm64+0x10000ff08) Thread T71 (tid=8891322, running) created by main thread at: #0 pthread_create <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x2ffec) #1 HALB_IOThread::DispatchPThread(void* (*)(void*), void*) <null>:230508612 (CoreAudio:arm64e+0x332910) #2 Pa_StartStream <null>:230508612 (mixxx:arm64+0x10210c97c) #3 SoundDevicePortAudio::open(bool, int) sounddeviceportaudio.cpp:363 (mixxx:arm64+0x10116f51c) #4 SoundManager::setupDevices() soundmanager.cpp:475 (mixxx:arm64+0x101178660) #5 MixxxMainWindow::initialize() mixxxmainwindow.cpp:346 (mixxx:arm64+0x100f321e4) #6 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (MixxxMainWindow::*)()>::call(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f46a14) #7 void QtPrivate::FunctionPointer<void (MixxxMainWindow::*)()>::call<QtPrivate::List<>, void>(void (MixxxMainWindow::*)(), MixxxMainWindow*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f468e0) #8 QtPrivate::QSlotObject<void (MixxxMainWindow::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f46744) #9 void doActivate<false>(QObject*, int, void**) <null>:230508612 (mixxx:arm64+0x10011ef08) #10 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) <null>:230508612 (mixxx:arm64+0x10011db88) #11 WInitialGLWidget::onInitialized() moc_winitialglwidget.cpp:160 (mixxx:arm64+0x1015c2d78) #12 WInitialGLWidget::initializeGL() winitialglwidget.cpp:17 (mixxx:arm64+0x1015c3294) #13 OpenGLWindow::initializeGL() openglwindow.cpp:31 (mixxx:arm64+0x1015c00b8) #14 QOpenGLWindowPrivate::initialize() <null>:230508612 (mixxx:arm64+0x1044fcd88) #15 QOpenGLWindow::resizeEvent(QResizeEvent*) <null>:230508612 (mixxx:arm64+0x1044fdd78) #16 QWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104cdbd1c) #17 QPaintDeviceWindow::event(QEvent*) <null>:230508612 (mixxx:arm64+0x104ca4814) #18 OpenGLWindow::event(QEvent*) openglwindow.cpp:70 (mixxx:arm64+0x1015c03fc) #19 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc) #20 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184) #21 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc) #22 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec) #23 QCoreApplication::sendSpontaneousEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4f08) #24 QGuiApplicationPrivate::processGeometryChangeEvent(QWindowSystemInterfacePrivate::GeometryChangeEvent*) <null>:230508612 (mixxx:arm64+0x104c8a1b4) #25 QGuiApplicationPrivate::processWindowSystemEvent(QWindowSystemInterfacePrivate::WindowSystemEvent*) <null>:230508612 (mixxx:arm64+0x104c86310) #26 QWindowSystemInterface::sendWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3884) #27 QWindowSystemInterface::flushWindowSystemEvents(QFlags<QEventLoop::ProcessEventsFlag>) <null>:230508612 (mixxx:arm64+0x104ce3304) #28 QCocoaWindow::handleGeometryChange() <null>:230508612 (mixxx:arm64+0x101c7da5c) #29 QWindow::show() <null>:230508612 (mixxx:arm64+0x104cd2c24) #30 QWindowContainer::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102299710) #31 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc) #32 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364) #33 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc) #34 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec) #35 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8) #36 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0) #37 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10) #38 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0) #39 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8) #40 WGLWidget::showEvent(QShowEvent*) wglwidgetqopengl.cpp:44 (mixxx:arm64+0x1015c2698) #41 QWidget::event(QEvent*) <null>:230508612 (mixxx:arm64+0x102276240) #42 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc) #43 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fd364) #44 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc) #45 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec) #46 QCoreApplication::sendEvent(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b4ea8) #47 QWidgetPrivate::show_helper() <null>:230508612 (mixxx:arm64+0x1022741b0) #48 QWidgetPrivate::setVisible(bool) <null>:230508612 (mixxx:arm64+0x102275c10) #49 QWidget::setVisible(bool) <null>:230508612 (mixxx:arm64+0x1022753f0) #50 QWidget::show() <null>:230508612 (mixxx:arm64+0x102273fc8) #51 MixxxMainWindow::initializeQOpenGL() mixxxmainwindow.cpp:161 (mixxx:arm64+0x100f30e64) #52 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:92 (mixxx:arm64+0x100010fd8) #53 main main.cpp:243 (mixxx:arm64+0x10000ff08) SUMMARY: ThreadSanitizer: data race sounddeviceportaudio.cpp:405 in SoundDevicePortAudio::close()
2.5
No response
The text was updated successfully, but these errors were encountered:
No branches or pull requests
Bug Description
SoundDevicePortAudio::close() vs SoundDevicePortAudio::writeProcess(long)
Details
Version
2.5
OS
No response
The text was updated successfully, but these errors were encountered: