Skip to content

Instantly share code, notes, and snippets.

@tewha
Forked from JimRoepcke/gist:3065296
Created July 7, 2012 07:58
Show Gist options
  • Save tewha/3065339 to your computer and use it in GitHub Desktop.
Save tewha/3065339 to your computer and use it in GitHub Desktop.
@synchronized doesn't retain monitored object under MRC
__block id foo = [MyObject new];
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSLog(@"block entering synchronized");
@synchronized(foo) {
NSLog(@"running in synchronized");
sleep(10);
// what does @synchronized do the now-zombie foo as part of its closure?
}
NSLog(@"block exited synchronized");
});
sleep(1);
NSLog(@"running at top level, releasing foo");
[foo release];
NSLog(@"running at top level, released foo");
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment