Details
Description
Change 6130b2137d causes stop() to wait until the worker thread leaves run(). run() calls updateFiles(), which might call stop() ...
Sampling process 59567 for 3 seconds with 1 millisecond of run time between samples Sampling completed, processing symbols... Analysis of sampling Qt Creator (pid 59567) every 1 millisecond Call graph: 2212 Thread_3838830 DispatchQueue_1: com.apple.main-thread (serial) 2212 start 2212 main 2212 ExtensionSystem::PluginManager::~PluginManager() 2212 ExtensionSystem::Internal::PluginManagerPrivate::~PluginManagerPrivate() 2212 ExtensionSystem::Internal::PluginManagerPrivate::stopAll() 2212 ExtensionSystem::Internal::PluginManagerPrivate::loadPlugin(ExtensionSystem::PluginSpec*, ExtensionSystem::PluginSpec::State) 2212 ExtensionSystem::Internal::PluginSpecPrivate::stop() 2212 ProjectExplorer::ProjectExplorerPlugin::shutdown() 2212 ProjectExplorer::SessionManager::clear() 2212 ProjectExplorer::SessionManager::removeProjects(QList<ProjectExplorer::Project*>) 2212 Qt4ProjectManager::Qt4Project::~Qt4Project() 2212 ProjectExplorer::Project::~Project() 2212 QObject::~QObject() 2212 QObjectPrivate::deleteChildren() 2212 Qt4ProjectManager::Internal::Qt4ProFileNode::~Qt4ProFileNode() 2212 Qt4ProjectManager::Internal::Qt4PriFileNode::~Qt4PriFileNode() 2212 ProjectExplorer::ProjectNode::~ProjectNode() 2212 ProjectExplorer::FolderNode::~FolderNode() 2212 ProjectExplorer::Node::~Node() 2212 QObject::~QObject() 2212 QObjectPrivate::deleteChildren() 2212 Qt4ProjectManager::Internal::Qt4PriFile::~Qt4PriFile() 2212 Core::IFile::~IFile() 2212 QObject::~QObject() 2212 QObject::destroyed(QObject*) 2212 QMetaObject::activate(QObject*, QMetaObject const*, int, void**) 2212 Core::FileManager::qt_metacall(QMetaObject::Call, int, void**) 2212 Core::FileManager::fileDestroyed(QObject*) 2212 Core::FileManager::removeFileInfo(Core::IFile*) 2212 Core::FileManager::removeFileInfo(QString const&, Core::IFile*) 2212 QFileSystemWatcher::removePath(QString const&) 2212 QFileSystemWatcher::removePaths(QStringList const&) 2212 QFSEventsFileSystemWatcherEngine::removePaths(QStringList const&, QStringList*, QStringList*) 2212 QWaitCondition::wait(QMutex*, unsigned long) 2212 _pthread_cond_wait 2212 __semwait_signal 2212 Thread_3838833 DispatchQueue_2: com.apple.libdispatch-manager (serial) 2212 start_wqthread 2212 _pthread_wqthread 2212 _dispatch_worker_thread2 2212 _dispatch_queue_invoke 2212 _dispatch_mgr_invoke 2212 kevent 2212 Thread_3838843 2212 thread_start 2212 _pthread_start 2212 __CFSocketManager 2212 select$DARWIN_EXTSN 2212 Thread_3838844 2212 thread_start 2212 _pthread_start 2212 ne7ssh::selectThread(void*) 2190 usleep 2186 nanosleep 2184 __semwait_signal 2 __spin_lock 2 cerror 1 cerror 1 cthread_set_errno_self 2 dyld_stub___error 14 __bzero 3 ne7ssh::lock() 3 Ne7ssh_Mutex::lock() 3 pthread_mutex_lock 2 pthread_mutex_lock 1 _spin_lock 3 ne7ssh::unlock() 3 Ne7ssh_Mutex::unlock() 2 __spin_lock 1 pthread_mutex_unlock 2 ne7ssh::selectThread(void*) 2212 Thread_3838845 2212 thread_start 2212 _pthread_start 2212 QThreadPrivate::start(void*) 2212 QProcessManager::run() 2212 select$DARWIN_EXTSN 2212 Thread_3838847 2212 thread_start 2212 _pthread_start 2212 QTWTF::TCMalloc_PageHeap::runScavengerThread(void*) 2212 QTWTF::TCMalloc_PageHeap::scavengerThread() 2212 _pthread_cond_wait 2212 __semwait_signal 2212 Thread_3838848 2212 thread_start 2212 _pthread_start 2212 WTF::TCMalloc_PageHeap::runScavengerThread(void*) 2212 WTF::TCMalloc_PageHeap::scavengerThread() 2212 _pthread_cond_wait 2212 __semwait_signal 2212 Thread_3856403 2212 thread_start 2212 _pthread_start 2212 QThreadPrivate::start(void*) 2212 QFSEventsFileSystemWatcherEngine::run() 2212 QFSEventsFileSystemWatcherEngine::updateFiles() 2212 QFSEventsFileSystemWatcherEngine::stop() 2212 QMutex::lock() 2212 QMutexPrivate::wait(int) 2212 _pthread_cond_wait 2212 __semwait_signal Total number in stack (recursive counted multiple, when >=5): 6 _pthread_start 6 thread_start 5 __semwait_signal Sort by top of stack, same collapsed (when >= 5): __semwait_signal 11032 select$DARWIN_EXTSN 4424 kevent 2212 __bzero 14 Sample analysis of process 59567 written to file /dev/stdout