Fixed unguarded critical sections.

CQTexperiment
vspader 2007-10-13 08:14:05 +00:00
parent d5919bc93e
commit fc9069d7c7
1 changed files with 23 additions and 18 deletions

View File

@ -54,6 +54,7 @@
output = [[OutputNode alloc] initWithController:self previous:nil]; output = [[OutputNode alloc] initWithController:self previous:nil];
[output setup]; [output setup];
@synchronized(chainQueue) {
NSEnumerator *enumerator = [chainQueue objectEnumerator]; NSEnumerator *enumerator = [chainQueue objectEnumerator];
id anObject; id anObject;
while (anObject = [enumerator nextObject]) while (anObject = [enumerator nextObject])
@ -68,6 +69,8 @@
[bufferChain release]; [bufferChain release];
} }
}
bufferChain = [[BufferChain alloc] initWithController:self]; bufferChain = [[BufferChain alloc] initWithController:self];
while (![bufferChain open:url withOutputFormat:[output format]]) while (![bufferChain open:url withOutputFormat:[output format]])
@ -263,12 +266,14 @@
return; return;
} }
@synchronized(chainQueue) {
bufferChain = [chainQueue objectAtIndex:0]; bufferChain = [chainQueue objectAtIndex:0];
[bufferChain retain]; [bufferChain retain];
NSLog(@"New!!! %@ %@", bufferChain, [[bufferChain inputNode] decoder]); NSLog(@"New!!! %@ %@", bufferChain, [[bufferChain inputNode] decoder]);
[chainQueue removeObjectAtIndex:0]; [chainQueue removeObjectAtIndex:0];
}
[self notifyStreamChanged:[bufferChain userInfo]]; [self notifyStreamChanged:[bufferChain userInfo]];
[output setEndOfStream:NO]; [output setEndOfStream:NO];