[Interest] Will TSAN_OPTIONS=detect_deadlocks=1 work when Qt is compiled with -sanitize thread?
Nuno Santos
nuno.santos at imaginando.pt
Fri Jul 19 16:15:19 CEST 2024
Alexey,
Thanks for your reply.
Sure, here it is:
(lldb) bt all
* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGSTOP
* frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04bc4 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 64
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x000000010313a960 BAM`QSGThreadedRenderLoop::polishAndSync(QSGThreadedRenderLoop::Window*, bool) + 1544
frame #5: 0x000000010313ae38 BAM`QSGThreadedRenderLoop::handleUpdateRequest(QQuickWindow*) + 364
frame #6: 0x0000000102fd8ad0 BAM`QQuickWindow::event(QEvent*) + 2608
frame #7: 0x0000000103cde3d8 BAM`QCoreApplicationPrivate::notify_helper(QObject*, QEvent*) + 384
frame #8: 0x0000000103cde1a0 BAM`QCoreApplication::notifyInternal2(QObject*, QEvent*) + 292
frame #9: 0x00000001032de3d4 BAM`QPlatformWindow::deliverUpdateRequest() + 68
frame #10: 0x00000001028abb84 BAM`QIOSScreen::deliverUpdateRequests() const + 148
frame #11: 0x0000000193e17ecc QuartzCore`CA::Display::DisplayLinkItem::dispatch_(CA::SignPost::Interval<(CA::SignPost::CAEventCode)835322056>&) + 48
frame #12: 0x0000000193e16230 QuartzCore`CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 876
frame #13: 0x0000000193e15dd0 QuartzCore`CA::Display::DisplayLink::dispatch_deferred_display_links(unsigned int) + 352
frame #14: 0x0000000194a0d76c UIKitCore`_UIUpdateSequenceRun + 84
frame #15: 0x0000000194a0d3b0 UIKitCore`schedulerStepScheduledMainSection + 172
frame #16: 0x0000000194a0e254 UIKitCore`runloopSourceCallback + 92
frame #17: 0x000000019272b834 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28
frame #18: 0x000000019272b7c8 CoreFoundation`__CFRunLoopDoSource0 + 176
frame #19: 0x0000000192729298 CoreFoundation`__CFRunLoopDoSources0 + 244
frame #20: 0x0000000192728484 CoreFoundation`__CFRunLoopRun + 828
frame #21: 0x0000000192727cd8 CoreFoundation`CFRunLoopRunSpecific + 608
frame #22: 0x00000001d75d81a8 GraphicsServices`GSEventRunModal + 164
frame #23: 0x0000000194d6090c UIKitCore`-[UIApplication _run] + 888
frame #24: 0x0000000194e149d0 UIKitCore`UIApplicationMain + 340
frame #25: 0x00000001028a35cc BAM`qt_main_wrapper + 800
frame #26: 0x00000001b5dd9e4c dyld`start + 2240
thread #2, queue = 'com.Metal.CommandQueueDispatch'
frame #0: 0x000000019b086558 IOKit`iokit_user_client_trap + 8
frame #1: 0x000000020e946b8c IOGPU`IOGPUCommandQueueSubmitCommandBuffers + 164
frame #2: 0x000000020e94687c IOGPU`-[IOGPUMetalCommandQueue _submitCommandBuffers:count:] + 356
frame #3: 0x000000020e9466f0 IOGPU`-[IOGPUMetalCommandQueue submitCommandBuffers:count:] + 72
frame #4: 0x00000001922d7ad4 Metal`-[_MTLCommandQueue _submitAvailableCommandBuffers] + 504
frame #5: 0x00000001085be7bc libdispatch.dylib`_dispatch_client_callout + 20
frame #6: 0x00000001085c18e0 libdispatch.dylib`_dispatch_continuation_pop + 676
frame #7: 0x00000001085d8cc8 libdispatch.dylib`_dispatch_source_latch_and_call + 480
frame #8: 0x00000001085d7718 libdispatch.dylib`_dispatch_source_invoke + 860
frame #9: 0x00000001085c64a4 libdispatch.dylib`_dispatch_lane_serial_drain + 376
frame #10: 0x00000001085c7408 libdispatch.dylib`_dispatch_lane_invoke + 408
frame #11: 0x00000001085d4404 libdispatch.dylib`_dispatch_root_queue_drain_deferred_wlh + 328
frame #12: 0x00000001085d3a38 libdispatch.dylib`_dispatch_workloop_worker_thread + 444
frame #13: 0x00000001ef50a934 libsystem_pthread.dylib`_pthread_wqthread + 288
thread #5
frame #0: 0x00000001ef5070c4 libsystem_pthread.dylib`start_wqthread
thread #7, name = 'com.apple.uikit.eventfetch-thread'
frame #0: 0x00000001db7a4808 libsystem_kernel.dylib`mach_msg2_trap + 8
frame #1: 0x00000001db7a8008 libsystem_kernel.dylib`mach_msg2_internal + 80
frame #2: 0x00000001db7a7f20 libsystem_kernel.dylib`mach_msg_overwrite + 436
frame #3: 0x00000001db7a7d60 libsystem_kernel.dylib`mach_msg + 24
frame #4: 0x0000000192728f5c CoreFoundation`__CFRunLoopServiceMachPort + 160
frame #5: 0x0000000192728600 CoreFoundation`__CFRunLoopRun + 1208
frame #6: 0x0000000192727cd8 CoreFoundation`CFRunLoopRunSpecific + 608
frame #7: 0x0000000191648e4c Foundation`-[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 212
frame #8: 0x0000000191648c9c Foundation`-[NSRunLoop(NSRunLoop) runUntilDate:] + 64
frame #9: 0x0000000194d74640 UIKitCore`-[UIEventFetcher threadMain] + 420
frame #10: 0x000000019165f718 Foundation`__NSThread__start__ + 732
frame #11: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #8
frame #0: 0x00000001ef5070c4 libsystem_pthread.dylib`start_wqthread
thread #10, name = 'Link Main'
frame #0: 0x00000001db7ab608 libsystem_kernel.dylib`kevent + 8
frame #1: 0x00000001024f6e50 BAM`link_asio_1_28_0::detail::kqueue_reactor::run(long, link_asio_1_28_0::detail::op_queue<link_asio_1_28_0::detail::scheduler_operation>&) + 300
frame #2: 0x00000001024f8340 BAM`link_asio_1_28_0::detail::scheduler::do_run_one(link_asio_1_28_0::detail::conditionally_enabled_mutex::scoped_lock&, link_asio_1_28_0::detail::scheduler_thread_info&, std::__1::error_code const&) + 296
frame #3: 0x00000001024f80b4 BAM`link_asio_1_28_0::detail::scheduler::run(std::__1::error_code&) + 268
frame #4: 0x00000001024f8cf4 BAM`ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>::Context<ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler>(ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler)::'lambda'(link_asio_1_28_0::io_context&, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler)::operator()(link_asio_1_28_0::io_context&, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler) const + 120
frame #5: 0x00000001024f8b48 BAM`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::thread ableton::platforms::darwin::ThreadFactory::makeThread<ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>::Context<ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler>(ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler)::'lambda'(link_asio_1_28_0::io_context&, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler), std::__1::reference_wrapper<link_asio_1_28_0::io_context>, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler&&, std::__1::reference_wrapper<link_asio_1_28_0::io_context>&&, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler&&)::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>::Context<ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler>(ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler)::'lambda'(link_asio_1_28_0::io_context&, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler)&&, std::__1::reference_wrapper<link_asio_1_28_0::io_context>&&, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>::Context<ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler>(ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler)::'lambda'(link_asio_1_28_0::io_context&, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler), std::__1::reference_wrapper<link_asio_1_28_0::io_context>, ableton::link::Controller<std::__1::function<void (unsigned long)>, std::__1::function<void (ableton::link::Tempo)>, std::__1::function<void (bool)>, ableton::platforms::darwin::Clock, ableton::platforms::stl::Random, ableton::platforms::link_asio_1_28_0::Context<ableton::platforms::posix::ScanIpIfAddrs, ableton::util::NullLog, ableton::platforms::darwin::ThreadFactory>>::UdpSendExceptionHandler>>(void*) + 104
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #11, name = 'Link Dispatcher'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x00000001a2b0e598 libc++.1.dylib`std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l>>>) + 100
frame #3: 0x00000001025174f0 BAM`ableton::platforms::link_asio_1_28_0::LockFreeCallbackDispatcher<std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>, ableton::platforms::darwin::ThreadFactory>::run() + 304
frame #4: 0x00000001025172c0 BAM`void* std::__1::__thread_proxy[abi:v160006]<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct>>, std::__1::thread ableton::platforms::darwin::ThreadFactory::makeThread<ableton::platforms::link_asio_1_28_0::LockFreeCallbackDispatcher<std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>, ableton::platforms::darwin::ThreadFactory>::LockFreeCallbackDispatcher(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>)::'lambda'()>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, ableton::platforms::link_asio_1_28_0::LockFreeCallbackDispatcher<std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>, ableton::platforms::darwin::ThreadFactory>::LockFreeCallbackDispatcher(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>)::'lambda'()&&)::'lambda'(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, ableton::platforms::link_asio_1_28_0::LockFreeCallbackDispatcher<std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>, ableton::platforms::darwin::ThreadFactory>::LockFreeCallbackDispatcher(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>)::'lambda'()&&), std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>, ableton::platforms::link_asio_1_28_0::LockFreeCallbackDispatcher<std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>, ableton::platforms::darwin::ThreadFactory>::LockFreeCallbackDispatcher(std::__1::function<void ()>, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000l>>)::'lambda'()>>(void*) + 100
frame #5: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #12, name = 'com.apple.CFSocket.private'
frame #0: 0x00000001db7ac474 libsystem_kernel.dylib`__select + 8
frame #1: 0x0000000192793b7c CoreFoundation`__CFSocketManager + 640
frame #2: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #13
frame #0: 0x00000001db7a4808 libsystem_kernel.dylib`mach_msg2_trap + 8
frame #1: 0x00000001db7a8008 libsystem_kernel.dylib`mach_msg2_internal + 80
frame #2: 0x00000001db7a7f20 libsystem_kernel.dylib`mach_msg_overwrite + 436
frame #3: 0x00000001db7a7d60 libsystem_kernel.dylib`mach_msg + 24
frame #4: 0x00000001e489d418 CoreMIDI`XServerMachPort::ReceiveMessage(int&, void*, int&) + 104
frame #5: 0x00000001e48ae4f4 CoreMIDI`MIDIProcess::MIDIInPortThread::Run() + 156
frame #6: 0x00000001e48abda0 CoreMIDI`CADeprecated::XThread::RunHelper(void*) + 48
frame #7: 0x00000001e48ada80 CoreMIDI`CADeprecated::CAPThread::Entry(CADeprecated::CAPThread*) + 92
frame #8: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #14, name = 'QQmlThread'
frame #0: 0x00000001db7b9268 libsystem_kernel.dylib`poll + 8
frame #1: 0x0000000103df6c38 BAM`qt_safe_poll(pollfd*, unsigned int, timespec const*) + 460
frame #2: 0x0000000103df7e00 BAM`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 740
frame #3: 0x0000000103ce507c BAM`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 608
frame #4: 0x0000000103d86c84 BAM`QThread::exec() + 264
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #15, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #16, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #17, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896 frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #18, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #19, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #20, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #21, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #22, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #23, name = 'caulk::deferred_logger'
frame #0: 0x00000001db7a4784 libsystem_kernel.dylib`semaphore_wait_trap + 8
frame #1: 0x00000002044af724 caulk`caulk::semaphore::timed_wait(double) + 212
frame #2: 0x00000002044af5e4 caulk`caulk::concurrent::details::worker_thread::run() + 36
frame #3: 0x00000002044af52c caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
frame #4: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #24, name = 'caulk.messenger.shared:high'
frame #0: 0x00000001db7a4784 libsystem_kernel.dylib`semaphore_wait_trap + 8
frame #1: 0x00000002044af724 caulk`caulk::semaphore::timed_wait(double) + 212
frame #2: 0x00000002044af5e4 caulk`caulk::concurrent::details::worker_thread::run() + 36
frame #3: 0x00000002044af52c caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
frame #4: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #25, name = 'AURemoteIO::IOThread'
frame #0: 0x00000001db7a4784 libsystem_kernel.dylib`semaphore_wait_trap + 8
frame #1: 0x0000000103dfd2d4 BAM`QBasicMutex::lockInternal(QDeadlineTimer) + 916
frame #2: 0x0000000103dfcf30 BAM`QBasicMutex::lockInternal() + 48
frame #3: 0x0000000103cde998 BAM`QCoreApplication::postEvent(QObject*, QEvent*, int) + 152
frame #4: 0x0000000103ce9758 BAM`QMetaObject::invokeMethodImpl(QObject*, QtPrivate::QSlotObjectBase*, Qt::ConnectionType, void*) + 736
frame #5: 0x00000001027a895c BAM`DSClip::processSteps(double, bool) + 980
frame #6: 0x000000010284c2a0 BAM`DSSequencer::processSplit(float*, float*, float*, float*, int) + 440
frame #7: 0x0000000102805fb8 BAM`DSInstrument::processSplit(float*, float*, float*, float*, int) + 684
frame #8: 0x00000001025c3f04 BAM`performRender(void*, unsigned int*, AudioTimeStamp const*, unsigned int, unsigned int, AudioBufferList*) + 276
frame #9: 0x000000020dc8f360 libEmbeddedSystemAUs.dylib`AUConverterBase::RenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int) + 628
frame #10: 0x000000020dc907d8 libEmbeddedSystemAUs.dylib`AURemoteIO::RenderBus(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int) + 192
frame #11: 0x000000020dc8fea8 libEmbeddedSystemAUs.dylib`ausdk::AUBase::DoRender(unsigned int&, AudioTimeStamp const&, unsigned int, unsigned int, AudioBufferList&) + 1968
frame #12: 0x000000020dc8efc0 libEmbeddedSystemAUs.dylib`AURemoteIO::PerformIO(unsigned int, unsigned int, unsigned int, AudioTimeStamp const&, AudioTimeStamp const&, AudioBufferList const*, AudioBufferList*, int&) + 1360
frame #13: 0x000000020dc8e7a0 libEmbeddedSystemAUs.dylib`_XPerformIO + 384
frame #14: 0x00000001b7c5b034 libAudioToolboxUtility.dylib`mshMIGPerform + 288
frame #15: 0x00000001b7c5af08 libAudioToolboxUtility.dylib`MSHMIGDispatchMessage + 36
frame #16: 0x000000020dcbc8d0 libEmbeddedSystemAUs.dylib`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, AURemoteIO::IOThread::IOThread(AURemoteIO&, caulk::thread::attributes const&, caulk::mach::os_workgroup_managed const&)::'lambda'(), std::__1::tuple<>>>(void*) + 580
frame #17: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #26, name = 'QSGRenderThread'
frame #0: 0x0000000103567f40 BAM`QRhiMetal::enqueueResourceUpdates(QRhiCommandBuffer*, QRhiResourceUpdateBatch*) + 948
frame #1: 0x0000000103007724 BAM`QSGBatchRenderer::Renderer::prepareRenderPass(QSGBatchRenderer::Renderer::RenderPassContext*) + 2264
frame #2: 0x0000000103006dcc BAM`QSGBatchRenderer::Renderer::render() + 36
frame #3: 0x000000010301bb70 BAM`QSGRenderer::renderScene() + 344
frame #4: 0x00000001030491ec BAM`QSGRhiLayer::grab() + 2120
frame #5: 0x0000000103048978 BAM`QSGRhiLayer::updateTexture() + 56
frame #6: 0x00000001030274f4 BAM`QSGBasicInternalImageNode::preprocess() + 76
frame #7: 0x000000010301c3f8 BAM`QSGRenderer::preprocess() + 888
frame #8: 0x000000010301bb60 BAM`QSGRenderer::renderScene() + 328
frame #9: 0x0000000102fd669c BAM`QQuickWindowPrivate::renderSceneGraph() + 804
frame #10: 0x00000001031377a0 BAM`QSGRenderThread::syncAndRender() + 968
frame #11: 0x00000001031388c0 BAM`QSGRenderThread::run() + 288
frame #12: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #13: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #27, name = 'QNetworkAccessManager thread'
frame #0: 0x00000001db7b9268 libsystem_kernel.dylib`poll + 8
frame #1: 0x0000000103df6b00 BAM`qt_safe_poll(pollfd*, unsigned int, timespec const*) + 148
frame #2: 0x0000000103df7e00 BAM`QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) + 740
frame #3: 0x0000000103ce507c BAM`QEventLoop::exec(QFlags<QEventLoop::ProcessEventsFlag>) + 608
frame #4: 0x0000000103d86c84 BAM`QThread::exec() + 264
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #28, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #29, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #30, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #31, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #32, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #33, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #34, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #35, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #36, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #37, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #38, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #39, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #40, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #41, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #42, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #43, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #44, name = 'Thread (pooled)'
frame #0: 0x00000001db7aa1cc libsystem_kernel.dylib`__psynch_cvwait + 8
frame #1: 0x00000001ef5096e4 libsystem_pthread.dylib`_pthread_cond_wait + 1228
frame #2: 0x0000000103e04c54 BAM`QWaitConditionPrivate::wait(QDeadlineTimer) + 208
frame #3: 0x0000000103e04b18 BAM`QWaitCondition::wait(QMutex*, QDeadlineTimer) + 148
frame #4: 0x0000000103dff7c0 BAM`QThreadPoolThread::run() + 896
frame #5: 0x0000000103dfbfd4 BAM`QThreadPrivate::start(void*) + 360
frame #6: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #45, name = 'com.apple.audio.toolbox.AUScheduledParameterRefresher'
frame #0: 0x00000001db7a4784 libsystem_kernel.dylib`semaphore_wait_trap + 8
frame #1: 0x00000002044af724 caulk`caulk::semaphore::timed_wait(double) + 212
frame #2: 0x00000002044af5e4 caulk`caulk::concurrent::details::worker_thread::run() + 36
frame #3: 0x00000002044af52c caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*>>>(void*) + 96
frame #4: 0x00000001ef50c06c libsystem_pthread.dylib`_pthread_start + 136
thread #46, queue = 'com.apple.libdispatch-manager'
frame #0: 0x00000001085e07c0 libdispatch.dylib`_dispatch_event_loop_drain_timers + 624
frame #1: 0x00000001085d3734 libdispatch.dylib`_dispatch_kevent_worker_thread + 500
frame #2: 0x00000001ef50a96c libsystem_pthread.dylib`_pthread_wqthread + 344
thread #47
frame #0: 0x00000001ef5070c4 libsystem_pthread.dylib`start_wqthread
> On 19 Jul 2024, at 14:04, Alexey Rusakov <ktirf at users.sf.net> wrote:
>
> Deadlocks usually occur across several threads. Do you have a stack trace for other threads, too?
>
> Alexey
>
> On Fri, 2024-07-19 at 12:12 +0100, Nuno Santos via Interest wrote:
>> Dennis,
>>
>> Thanks for the clarification.
>>
>> Maybe it is deviating a bit from Qt. It’s probably something I’m not doing correctly from the Qt paradigm perspective but this is one of those problems where I feeling lost.
>>
>> I’ve just had one of those rare deadlock and it happened like this:
>>
>> - This is a music making application. I have the audio processing and the GUI.
>> - In the audio render thread, I call the processing of the sequencer which is responsible for handling the music events.
>> - There are visual representations of this elements that contains the notes that are being played
>> - During the processing of the musical steps, there is a signal that is being called. It got stuck there.
>>
>> But invoking a method as a queue connection in another thread shouldn’t be a problem, right?
>>
>> QMetaObject::invokeMethod(this, &DSClip::stepChanged, Qt::QueuedConnection);
>>
>> This invoke will trigger a signal that will request the DSClip visual instance to be updated on the QML side.
>>
>> Here is the place it got stuck in the audio render thread. It got locked when invoking the method.
>>
>> Does this ring any bell?
>>
>> Thanks!
>>
>> Best,
>>
>> Nuno
>>
>>
>>
>>> On 19 Jul 2024, at 12:00, Dennis Luehring <dl.soluz at gmx.net <mailto:dl.soluz at gmx.net>> wrote:
>>>
>>> Am 19.07.2024 um 12:52 schrieb Nuno Santos:
>>>> Can data race cause deadlocks?
>>>>
>>>> Or should I explicitly look for deadlock: "lock-order-inversion (potential deadlock)”
>>>
>>>
>>> data races can maybe get you into deadlocks someway... but you should
>>> look for lock-order-inversions and fix them (even if very hard to
>>> sometimes understand why they happening)
>>>
>>>
>>> btw: the discussion is drifting away from Qt itself :)
>>
>> _______________________________________________
>> Interest mailing list
>> Interest at qt-project.org <mailto:Interest at qt-project.org>
>> https://lists.qt-project.org/listinfo/interest
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20240719/b75717a0/attachment-0001.htm>
More information about the Interest
mailing list