Since last night and for no apparent reason, Xcode 4 starts spinning after opening my project. The spinning seems to be forever and makes Xcode 4 unusable because it never recovers from it. Every other project works fine and never causes Xcode 4 to spin, so I have no idea what could be causing this. So I have sampled Xcode and found something interesting.
Looks like it could be -[IDESourceControlWorkingTree updateLocalStatusForDirectory:completionBlock:] is the culprit, so I removed the project item from Organizer > Repositories. This seems to do the trick! Is there a way to turn off Source Code Control in Xcode 4 completely? I'm using Cornerstone anyway...
Sampling process 1624 for 3 seconds with 1 millisecond of run time between samples
Sampling completed, processing symbols...
Analysis of sampling Xcode (pid 1624) every 1 millisecond
Process: Xcode [1624]
Path: /Xcode 4/Applications/Xcode.app/Contents/MacOS/Xcode
Load Address: 0x100000000
Identifier: com.apple.dt.Xcode
Version: 4.0.2 (99)
Build Info: IDEApplication-990000~53
Code Type: X86-64 (Native)
Parent Process: launchd [185]
Date/Time: 2011-05-20 07:34:37.402 -0700
OS Version: Mac OS X 10.6.7 (10J869)
Report Version: 7
Call graph:
2337 Thread_80708 DispatchQueue_1: com.apple.main-thread (serial)
2337 0x100000eec
2337 NSApplicationMain
2337 -[NSApplication run]
2337 -[NSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]
2337 _DPSNextEvent
2337 BlockUntilNextEventMatchingListInMode
2337 ReceiveNextEventCommon
2337 RunCurrentEventLoopInMode
2337 CFRunLoopRunSpecific
2337 __CFRunLoopRun
2337 _dispatch_main_queue_callback_4CF
2337 _dispatch_queue_serial_drain_till_empty
2337 _dispatch_queue_drain
2337 _dispatch_call_block_and_release
2337 ____NSOQSchedule_block_invoke_1
2337 __doStart2
2337 -[__NSOperationInternal start]
2337 __77-[IDESourceControlWorkingTree updateLocalStatusForDirectory:completionBlock:]_block_invoke_01133
2337 -[NSNotificationCenter postNotificationName:object:userInfo:]
2337 _CFXNotificationPostNotification
2337 __CFXNotificationPost
2337 _dispatch_group_wait_slow
2337 semaphore_wait_trap
2337 Thread_80715 DispatchQueue_2: com.apple.libdispatch-manager (serial)
2337 start_wqthread
2337 _pthread_wqthread
2337 _dispatch_worker_thread2
2337 _dispatch_queue_invoke
2337 _dispatch_mgr_invoke
2337 kevent
2337 Thread_80727
2337 thread_start
2337 _pthread_start
2337 __NSThread__main__
2337 -[DTDKRemoteDeviceDataListener listenerThreadImplementation]
2337 CFRunLoopRunSpecific
2337 __CFRunLoopRun
2337 mach_msg
2337 mach_msg_trap
2337 Thread_80728: com.apple.CFSocket.private
2337 thread_start
2337 _pthread_start
2337 __CFSocketManager
2337 select$DARWIN_EXTSN
2337 Thread_80733
2337 thread_start
2337 _pthread_start
2337 __NSThread__main__
2337 +[NSURLConnection(NSURLConnectionReallyInternal) _resourceLoadLoop:]
2337 CFRunLoopRunSpecific
2337 __CFRunLoopRun
2337 mach_msg
2337 mach_msg_trap
2337 Thread_80847
2337 thread_start
2337 _pthread_start
2337 startIOThread(void*)
2337 CVDisplayLink::runIOThread()
2337 _pthread_cond_wait
2337 __semwait_signal
2337 Thread_80850 DispatchQueue_6: com.apple.root.default-priority (concurrent)
2337 start_wqthread
2337 _pthread_wqthread
2337 _dispatch_worker_thread2
2337 _dispatch_call_block_and_release
2337 ____CFXNotificationPost_block_invoke_1
2337 _nsnote_callback
2337 -[__NSObserver _doit:]
2337 -[NSOperation waitUntilFinished]
2337 -[__NSOperationInternal waitUntilFinished]
2337 _pthread_cond_wait
2337 __semwait_signal
2337 Thread_80858 DispatchQueue_6: com.apple.root.default-priority (concurrent)
2337 start_wqthread
2337 _pthread_wqthread
2337 _dispatch_worker_thread2
2337 _dispatch_call_block_and_release
2337 __doStart2
2337 -[__NSOperationInternal start]
2337 -[NSBlockOperation main]
2337 -[IDESourceControlIssueProvider _scanForIssues]
2337 -[IDESourceControlWorkspaceMonitor itemsWithStatusInWorkspaceForWorkingTree:]
2337 -[IDESourceControlWorkingTree itemsWithStatus]
2337 -[DVTDispatchLock performLockedBlock:]
2337 _dispatch_barrier_sync_f_slow
2337 _dispatch_semaphore_wait_slow
2337 semaphore_wait_trap
2337 Thread_80881 DispatchQueue_569: IDESourceControlWorkingTreeItemsWithStatusLock (serial)
2337 start_wqthread
2337 _pthread_wqthread
2337 _dispatch_worker_thread2
2337 _dispatch_queue_invoke
2337 _dispatch_queue_drain
2337 _dispatch_call_block_and_release
2337 __77-[IDESourceControlWorkingTree updateLocalStatusForDirectory:completionBlock:]_block_invoke_01137
2337 -[IDESourceControlWorkingTree mergeStatusOperationResults:forLocalStatusOnly:]
2337 -[DVTDispatchLock performLockedBlock:]
2337 dispatch_barrier_sync_f
2337 __38-[DVTDispatchLock performLockedBlock:]_block_invoke_0
2337 __78-[IDESourceControlWorkingTree mergeStatusOperationResults:forLocalStatusOnly:]_block_invoke_0
2337 _DVTAssertionFailureHandler
2337 +[IDEAssertionHandler _handleAssertionWithLogString:]
2337 _dispatch_barrier_sync_f_slow
2337 _dispatch_semaphore_wait_slow
2337 semaphore_wait_trap
2337 Thread_80899
2337 thread_start
2337 _pthread_start
2337 __NSThread__main__
2337 -[XCInvocationQueue _processInvocationsInThreadSlotNumber:]
2337 _pthread_cond_wait
2337 __semwait_signal
2337 Thread_80937
2337 thread_start
2337 _pthread_start
2337 SpotlightQueryThread(void*)
2337 CFRunLoopRunSpecific
2337 __CFRunLoopRun
2337 mach_msg
2337 mach_msg_trap
2337 Thread_80990
2337 start_wqthread
2337 _pthread_wqthread
2337 __workq_kernreturn
Total number in stack (recursive counted multiple, when >=5):
6 _pthread_start
6 thread_start
5 _pthread_wqthread
5 start_wqthread
Sort by top of stack, same collapsed (when >= 5):
__semwait_signal 7011
mach_msg_trap 7011
semaphore_wait_trap 7011
__workq_kernreturn 2337
kevent 2337
select$DARWIN_EXTSN 2337