Nested AutoRelease Pools Crash
Nested AutoRelease Pools Crash
- Subject: Nested AutoRelease Pools Crash
- From: Trygve Inda <email@hidden>
- Date: Sun, 26 Apr 2009 16:37:42 +0000
- Thread-topic: Nested AutoRelease Pools Crash
- (void)threadMethod:(id)anObject
{
NSAutoreleasePool* outterPool = [[NSAutoreleasePool alloc] init];
NSDictionary* userDefaults = [NSUserDefaults standardUserDefaults]
importantValue = [[userDefaults objectForKey:@"myKey"] boolValue];
while (1)
{
NSAutoreleasePool* innerPool = [[NSAutoreleasePool alloc] init];
if (![self threadMustExit])
[self doStuffWith:importantValue];
if (![self threadMustExit])
[self doMoreStuff];
if (![self threadMustExit])
[self doEvenMore];
[innerPool release];
if ([lock lockWhenCondition:kConditionThreadMustExit])
{
[lock unlock];
break;
}
}
[lock lock];
[lock unlockWithCondition:kConditionThreadIdle];
[outterPool release];
}
This crashes the second time through the loop (when innerPool is being
created for the second time). Why?
I need to drain the pool each time through the inner loop. I am not using
Garbage Collection.
Thread 4 Crashed:
0 libobjc.A.dylib 0x9557f688 objc_msgSend + 24
1 com.xericdesign.earthdesk.core 0x00008b3c 0x1000 + 31548
2 com.apple.Foundation 0x92a0e7ed -[NSThread main] + 45
3 com.apple.Foundation 0x92a0e394 __NSThread__main__ + 308
4 libSystem.B.dylib 0x90e7b095 _pthread_start + 321
5 libSystem.B.dylib 0x90e7af52 thread_start + 34
_______________________________________________
Cocoa-dev mailing list (email@hidden)
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:
This email sent to email@hidden