On Oct 9, 2014, at 17:25:05, Greg Parker <gpar...@apple.com> wrote: > > This thread is stopped inside dispatch_once(), presumably waiting for some > other thread to perform the once operation. > > Assuming dispatch_once is working normally, there should be one thread inside > readMakerNoteProps() and dispatch_once_f() that is doing something else. Can > you find it? What is it doing?
Found a thread that looks different: #0 0x00007fff8d46ca56 in semaphore_wait_trap () #1 0x00007fff97c879f9 in _dispatch_semaphore_wait_slow () #2 0x00007fff95f087ef in xpc_connection_send_message_with_reply_sync () #3 0x00007fff925acbde in _LSCopyApplicationInformation () #4 0x00007fff95898450 in ProcessInformationCopyDictionary () #5 0x00007fff90efca3e in ___lldb_unnamed_function3$$MetadataLib.dylib () #6 0x00007fff97c8328d in _dispatch_client_callout () #7 0x00007fff97c831fc in dispatch_once_f () #8 0x00007fff90efc50f in readMakerNoteProps () #9 0x00007fff8bd982f9 in readMakerNoteProps () #10 0x00007fff8bd4834d in metadataFromDatablock () #11 0x00007fff8bd47bf8 in metadataFromDatablock () #12 0x00007fff8bd7afed in createMetadataFromDatabuffer () #13 0x00007fff8bd7194e in readExifData () #14 0x00007fff8bd705ff in initImageJPEG () #15 0x00007fff8bd6f1d6 in _CGImagePluginInitJPEG () #16 0x00007fff8bd4528c in makeImagePlus () #17 0x00007fff8bd6a469 in CGImageSourceCreateImageAtIndex () #18 0x00000001000052a0 in -[FFGraphicSearch doesImageMatchURL:] at /Users/tut/Dropbox/FotoFind/FotoFind/FFGraphicSearch.mm:161 #19 0x0000000100003324 in -[FFMainWindowController ifImageMatchesAddToResults:] at /Users/tut/Dropbox/FotoFind/FotoFind/FFMainWindowController.mm:228 #20 0x00007fff977059ac in __invoking___ () #21 0x00007fff97705814 in -[NSInvocation invoke] () #22 0x00007fff8d9c9484 in -[NSInvocationOperation main] () #23 0x00007fff8d920f31 in -[__NSOperationInternal _start:] () #24 0x00007fff8d920bdb in __NSOQSchedule_f () #25 0x00007fff97c8328d in _dispatch_client_callout () #26 0x00007fff97c877e3 in _dispatch_async_redirect_invoke () #27 0x00007fff97c8328d in _dispatch_client_callout () #28 0x00007fff97c85082 in _dispatch_root_queue_drain () #29 0x00007fff97c86177 in _dispatch_worker_thread2 () #30 0x00007fff8de69ef8 in _pthread_wqthread () ProcessInformationCopyDictionary is plenty old, deprecated in 10.9 and claims to be thread-safe since 10.3. > One way to break dispatch_once is to throw an exception from the once > operation. If you don't see any thread actually executing the once operation > then you might try running with an All Exceptions breakpoint and see if > anything fails there. I added breakpoints for both throw and catch. Here's the only catch hit I get (a few different threads stopped here): #0 0x00007fff95a0ebdf in __cxa_throw () #1 0x00007fff8ca9b68e in CMMThrowExceptionOnError(CMMErr) () #2 0x00007fff8cab2cf8 in CMMInputProfile::GetDstColorSpace(CMMConversionType, bool*) () #3 0x00007fff8caa75bd in DoInitializeTransform () #4 0x00007fff8caa93b7 in AppleCMMInitializeTransform () #5 0x00007fff8cae0935 in ColorSyncCMMInitializeTransform () #6 0x00007fff8ca96568 in ColorSyncTransformCreate () #7 0x00000001003893ce in create () #8 0x0000000100384cc0 in CMSGetProfileInfo () #9 0x00007fff8fe42214 in color_space_create_icc () #10 0x00007fff8fe4701b in CGColorSpaceCreateWithICCProfile () #11 0x00007fff8fe7ad2d in CGColorSpaceCreateICCBased () #12 0x00007fff8bd4e0f9 in ImageIO_CreateICCBasedColorSpaceWithProfile () #13 0x00007fff8bd4e06d in ImageIO_CreateICCBasedColorSpaceWithProfileData () #14 0x00007fff8bd4e037 in CGColorSpaceCreateWithCopyOfData () #15 0x00007fff8bd7085f in initImageJPEG () #16 0x00007fff8bd6f1d6 in _CGImagePluginInitJPEG () #17 0x00007fff8bd4528c in makeImagePlus () #18 0x00007fff8bd6a469 in CGImageSourceCreateImageAtIndex () #19 0x00000001000052a0 in -[FFGraphicSearch doesImageMatchURL:] at /Users/tut/Dropbox/FotoFind/FotoFind/FFGraphicSearch.mm:161 The catch was being handled in DoInitializeTransform as well, so it wasn't throwing past that. I saw that happen a few times. Now I can't get it to happen again - it goes back to the hanging behavior displayed by the top stack. -- Steve Mills Drummer, Mac geek _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com