Yeah I definitely need to squash this bug. But as Greg Parker said, @synchronized (which I'm using) has nothing to do with NSRecursiveLock. And the only other threading related classes I'm using are NSOperationQueue and NSInvocationOperation. Would one of these classes use NSRecursiveLock? I am positive that I'm not directly using NSRecursiveLock or NSLock anywhere in my project.
Independent Cocoa Developer, Macatomy Software http://macatomy.com On 2009-12-18, at 12:07 AM, Kai Brüning wrote: > Great you found this issue. > > But according to the log output, it seems that you do have a serious > threading-related problem. I wouldn’t ignore this, it may raise its head any > time in the future and bite you badly. > > Good luck > Kai > > On 18.12.2009, at 03:26, PCWiz wrote: > >> Thanks, will do. >> >> And regarding Jeremy's note about the 2 libraries can't be loaded, those are >> Input Manager plugins that have nothing to do with my app. >> >> But I'm happy to say that I eventually found the cause of my problem. One of >> the frameworks I was using was compiled using "i386 ppc" set as the >> architecture. Setting this to "Standard (32-bit/64-bit Universal)" and >> recompiling the framework fixed it. Xcode seems to launch the app in 32 bit >> mode whether its in Debug or Release (because I have the Active Architecture >> set to i386). When launched from Finder, the app launches in 64 bit mode, >> and since that framework was not compiled with the x86_64 architecture it >> screwed up the app. >> >> Hope this helps anyone else that runs into this issue. >> >> Independent Cocoa Developer, Macatomy Software >> http://macatomy.com >> >> >> On 2009-12-17, at 9:55 AM, Jens Alfke wrote: >> >>> >>> On Dec 16, 2009, at 10:04 PM, PCWiz wrote: >>> >>>> I'm not using NSLock or NSRecursiveLock directly. I'm using @synchronized >>>> on an object that multiple threads acess, to allow only one thread to >>>> access the object at a time. >>> >>> The fact that the description of the lock is "<NSRecursiveLock: 0x16c2340> >>> '(null)'" makes me suspect that you're synchronizing on a nil pointer, i.e. >>> that when you call >>> @synchronized(foo) { ... } >>> the value of foo is nil. I'm pretty sure that's illegal, and I would have >>> thought it would throw an exception, but maybe not. Try putting a check >>> above the block, something like >>> NSAssert(foo!=nil, @"no foo"); >>> >>> —Jens >> >> _______________________________________________ >> >> 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: >> http://lists.apple.com/mailman/options/cocoa-dev/lists%40kai-bruening.de >> >> This email sent to li...@kai-bruening.de > _______________________________________________ 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com