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. What does your stack trace say. 
Are you in an runtime call or NSOjbect call?

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

_______________________________________________

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

Reply via email to