On 31 May 2012, at 17:14, Scott A Andrew wrote: > My guess is that you are crashing because kMyVLFContext is not an objective C > object. According to the Apple documentation > (https://developer.apple.com/library/mac/#documentation/Cocoa/Conceptual/ObjectiveC/Chapters/ocThreading.html#//apple_ref/doc/uid/TP30001163-CH19-SW1): > > The @synchronized() directive takes as its only argument any Objective-C > object, including self. This object is known as a mutual exclusion semaphore > or mutex. It allows a thread to lock a section of code to prevent its use by > other threads. You should use separate semaphores to protect different > critical sections of a program. It’s safest to create all the mutual > exclusion objects before the application becomes multithreaded, to avoid race > conditions. > > My guess is that ARC is trying to do a bit of memory management on your > context pointer and the calls it expects aren't there.
Ok, that seems to make sense. At any rate, changing kMyVLFContext to a more regular style (an NSString) seems to fix the issue. static NSString *kMyVLFContext = @"kMyVLFContext"; Thanks, António > Scott > > On May 31, 2012, at 8:47 AM, Antonio Nunes wrote: > >> I have a function that looks essentially like this: >> >> static void *kMyVLFContext = &kMyVLFContext; >> Boolean myFunction(CFURLRef path) >> { >> CFDictionaryRef myDictionary = NULL; >> >> @synchronized(kMyVLFContext) { >> … work … >> } >> >> return myDictionary != NULL; >> } >> >> This function works fine with manual memory management. After compiling with >> ARC though, a crash occurs on line "@synchronized(kMyVLFContext) {". I >> wouldn't think this should be affected by ARC at all. Any hints as to what >> might be afoot here, or is it more likely something else, earlier on is >> causing a failure here (e.g. stomping kMyVLFContext)? >> >> Removing the lock causes the function to return successfully, but may of >> course cause issues on occasions when the function is called from several >> threads at once. >> >> -António >> >> ---------------------------------------------------- >> It isn't so important to do great things, >> as to do what you do with great love. >> ---------------------------------------------------- >> >> >> >> >> _______________________________________________ >> >> 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/scottandrew%40roadrunner.com >> >> This email sent to scottand...@roadrunner.com > ----------------------------------------------------------- And could you keep your heart in wonder at the daily miracles of your life, your pain would not seem less wondrous than your joy. --Kahlil Gibran ----------------------------------------------------------- _______________________________________________ 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