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
VisualPlayPosition::set vs VisualPlayPosition::getPlaySlipAtNextVSync
================== WARNING: ThreadSanitizer: data race (pid=48840) Read of size 1 at 0x00011b224bd8 by main thread (mutexes: write M0): #0 VisualPlayPosition::getPlaySlipAtNextVSync(VSyncThread*, double*, double*) visualplayposition.cpp:177 (mixxx:arm64+0x1013cea08) #1 WaveformWidgetRenderer::onPreRender(VSyncThread*) waveformwidgetrenderer.cpp:147 (mixxx:arm64+0x1013c83b8) #2 WaveformWidgetAbstract::preRender(VSyncThread*) waveformwidgetabstract.cpp:29 (mixxx:arm64+0x10140afb0) #3 WaveformWidgetFactory::renderSelf() waveformwidgetfactory.cpp:784 (mixxx:arm64+0x1013eb40c) #4 WaveformWidgetFactory::swapAndRender() waveformwidgetfactory.cpp:885 (mixxx:arm64+0x1013e2b28) #5 QtPrivate::FunctorCall<QtPrivate::IndexesList<>, QtPrivate::List<>, void, void (WaveformWidgetFactory::*)()>::call(void (WaveformWidgetFactory::*)(), WaveformWidgetFactory*, void**) qobjectdefs_impl.h:137 (mixxx:arm64+0x100f48bfc) #6 void QtPrivate::FunctionPointer<void (WaveformWidgetFactory::*)()>::call<QtPrivate::List<>, void>(void (WaveformWidgetFactory::*)(), WaveformWidgetFactory*, void**) qobjectdefs_impl.h:174 (mixxx:arm64+0x100f48ac8) #7 QtPrivate::QSlotObject<void (WaveformWidgetFactory::*)(), QtPrivate::List<>, void>::impl(int, QtPrivate::QSlotObjectBase*, QObject*, void**, bool*) qobjectdefs_impl.h:432 (mixxx:arm64+0x100f4892c) #8 QMetaCallEvent::placeMetaCall(QObject*) <null>:230508612 (mixxx:arm64+0x100113480) #9 QObject::event(QEvent*) <null>:230508612 (mixxx:arm64+0x10011659c) #10 QApplicationPrivate::notify_helper(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fabdc) #11 QApplication::notify(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1021fc184) #12 MixxxApplication::notify(QObject*, QEvent*) mixxxapplication.cpp:200 (mixxx:arm64+0x100ef48dc) #13 QCoreApplication::notifyInternal2(QObject*, QEvent*) <null>:230508612 (mixxx:arm64+0x1000b3dec) #14 QCoreApplicationPrivate::sendPostedEvents(QObject*, int, QThreadData*) <null>:230508612 (mixxx:arm64+0x1000b5ba8) #15 QCoreApplication::sendPostedEvents(QObject*, int) <null>:230508612 (mixxx:arm64+0x1000b4c48) #16 QCocoaEventDispatcherPrivate::processPostedEvents() <null>:230508612 (mixxx:arm64+0x101c5b46c) #17 QCoreApplication::exec() <null>:230508612 (mixxx:arm64+0x1000b4b78) #18 QGuiApplication::exec() <null>:230508612 (mixxx:arm64+0x104c85b28) #19 QApplication::exec() <null>:230508612 (mixxx:arm64+0x1021fbeb8) #20 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:108 (mixxx:arm64+0x10001112c) #21 main main.cpp:243 (mixxx:arm64+0x10000ff08) Previous write of size 1 at 0x00011b224bd8 by thread T71 (mutexes: write M1, write M2): #0 VisualPlayPosition::set(double, double, double, double, double, SlipModeState, bool, bool, bool, double, double, double, double) visualplayposition.cpp:56 (mixxx:arm64+0x1013cdd34) #1 EngineBuffer::updateIndicators(double, int) enginebuffer.cpp:1475 (mixxx:arm64+0x1009953b8) #2 EngineBuffer::postProcess(int) enginebuffer.cpp:1409 (mixxx:arm64+0x100994dbc) #3 EngineDeck::postProcess(int) enginedeck.cpp:96 (mixxx:arm64+0x1008f5640) #4 EngineMixer::processChannels(int) enginemixer.cpp:398 (mixxx:arm64+0x1009a7fc8) #5 EngineMixer::process(int) enginemixer.cpp:426 (mixxx:arm64+0x1009a8560) #6 SoundManager::onDeviceOutputCallback(long) soundmanager.cpp:599 (mixxx:arm64+0x10117ac44) #7 SoundDevicePortAudio::callbackProcessClkRef(long, float*, float const*, PaStreamCallbackTimeInfo const*, unsigned long) sounddeviceportaudio.cpp:998 (mixxx:arm64+0x101172984) #8 (anonymous namespace)::paV19CallbackClkRef(void const*, void*, unsigned long, PaStreamCallbackTimeInfo const*, unsigned long, void*) sounddeviceportaudio.cpp:69 (mixxx:arm64+0x10116fe5c) #9 AdaptingOutputOnlyProcess <null>:230508612 (mixxx:arm64+0x10210fed4) #10 PaUtil_EndBufferProcessing <null>:230508612 (mixxx:arm64+0x10210e09c) #11 AudioIOProc <null>:230508612 (mixxx:arm64+0x1021185a8) #12 <null> <null>:230508612 (CoreAudio:arm64e+0xa8d8) Location is heap block of size 896 at 0x00011b224880 allocated by main thread: #0 operator new(unsigned long) <null>:230508612 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x83de0) #1 VisualPlayPosition::getVisualPlayPosition(QString const&) visualplayposition.cpp:216 (mixxx:arm64+0x1013ced88) #2 EngineBuffer::EngineBuffer(QString const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineChannel*, EngineMixer*) enginebuffer.cpp:165 (mixxx:arm64+0x10098b1c0) #3 EngineBuffer::EngineBuffer(QString const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineChannel*, EngineMixer*) enginebuffer.cpp:97 (mixxx:arm64+0x10098e88c) #4 EngineDeck::EngineDeck(ChannelHandleAndGroup const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, bool) enginedeck.cpp:38 (mixxx:arm64+0x1008f49fc) #5 EngineDeck::EngineDeck(ChannelHandleAndGroup const&, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, bool) enginedeck.cpp:24 (mixxx:arm64+0x1008f4df4) #6 BaseTrackPlayerImpl::BaseTrackPlayerImpl(PlayerManager*, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, ChannelHandleAndGroup const&, bool, bool, bool) basetrackplayer.cpp:55 (mixxx:arm64+0x100ea9a6c) #7 BaseTrackPlayerImpl::BaseTrackPlayerImpl(PlayerManager*, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, ChannelHandleAndGroup const&, bool, bool, bool) basetrackplayer.cpp:54 (mixxx:arm64+0x100ea94bc) #8 Deck::Deck(PlayerManager*, QSharedPointer<ConfigObject<ConfigValue>>, EngineMixer*, EffectsManager*, EngineChannel::ChannelOrientation, ChannelHandleAndGroup const&) deck.cpp:19 (mixxx:arm64+0x100eb8bf4) #9 PlayerManager::addDeckInner() playermanager.cpp:408 (mixxx:arm64+0x100ed0cd0) #10 PlayerManager::slotChangeNumDecks(double) playermanager.cpp:323 (mixxx:arm64+0x100ecad78) #11 PlayerManager::addConfiguredDecks() playermanager.cpp:395 (mixxx:arm64+0x100ed1e30) #12 mixxx::CoreServices::initialize(QApplication*) coreservices.cpp:309 (mixxx:arm64+0x100637774) #13 (anonymous namespace)::runMixxx(MixxxApplication*, CmdlineArgs const&) main.cpp:87 (mixxx:arm64+0x100010fcc) #14 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 visualplayposition.cpp:177 in VisualPlayPosition::getPlaySlipAtNextVSync(VSyncThread*, double*, double*)
2.5
No response
The text was updated successfully, but these errors were encountered:
fixed in #13876
Sorry, something went wrong.
No branches or pull requests
Bug Description
VisualPlayPosition::set vs VisualPlayPosition::getPlaySlipAtNextVSync
Details
Version
2.5
OS
No response
The text was updated successfully, but these errors were encountered: