diff --git a/StreamingKit/StreamingKit/STKAudioPlayer.m b/StreamingKit/StreamingKit/STKAudioPlayer.m index 8c6d66f..6537a72 100644 --- a/StreamingKit/StreamingKit/STKAudioPlayer.m +++ b/StreamingKit/StreamingKit/STKAudioPlayer.m @@ -42,7 +42,7 @@ #import "libkern/OSAtomic.h" #import -#pragma mark Defines +#pragma mark Defines% #define kOutputBus 0 #define kInputBus 1 diff --git a/StreamingKit/StreamingKit/STKAutoRecoveringHTTPDataSource.m b/StreamingKit/StreamingKit/STKAutoRecoveringHTTPDataSource.m index d8c11a0..c98a190 100644 --- a/StreamingKit/StreamingKit/STKAutoRecoveringHTTPDataSource.m +++ b/StreamingKit/StreamingKit/STKAutoRecoveringHTTPDataSource.m @@ -214,7 +214,9 @@ static void ReachabilityCallback(SCNetworkReachabilityRef target, SCNetworkReach if (runLoop == nil) { - [self performSelector:@selector(attemptReconnectWithSerial:) withObject:@(serial) afterDelay:waitSeconds]; + // DataSource no longer used + + return; } else { diff --git a/StreamingKit/StreamingKit/STKCoreFoundationDataSource.m b/StreamingKit/StreamingKit/STKCoreFoundationDataSource.m index 2049ecd..5b28947 100644 --- a/StreamingKit/StreamingKit/STKCoreFoundationDataSource.m +++ b/StreamingKit/StreamingKit/STKCoreFoundationDataSource.m @@ -101,6 +101,11 @@ static void ReadStreamCallbackProc(CFReadStreamRef stream, CFStreamEventType eve { if (stream) { + if (eventsRunLoop) + { + [self unregisterForEvents]; + } + CFReadStreamClose(stream); CFRelease(stream); @@ -127,6 +132,8 @@ static void ReadStreamCallbackProc(CFReadStreamRef stream, CFStreamEventType eve { CFReadStreamSetClient(stream, kCFStreamEventHasBytesAvailable | kCFStreamEventErrorOccurred | kCFStreamEventEndEncountered, NULL, NULL); CFReadStreamUnscheduleFromRunLoop(stream, [eventsRunLoop getCFRunLoop], kCFRunLoopCommonModes); + + eventsRunLoop = nil; } } diff --git a/StreamingKit/StreamingKit/STKHTTPDataSource.m b/StreamingKit/StreamingKit/STKHTTPDataSource.m index 862ab64..65a191e 100644 --- a/StreamingKit/StreamingKit/STKHTTPDataSource.m +++ b/StreamingKit/StreamingKit/STKHTTPDataSource.m @@ -216,17 +216,12 @@ -(void) seekToOffset:(long long)offset { - if (eventsRunLoop) - { - [self unregisterForEvents]; - } + NSRunLoop* savedEventsRunLoop = eventsRunLoop; + + [self close]; + + eventsRunLoop = savedEventsRunLoop; - if (stream) - { - CFReadStreamClose(stream); - CFRelease(stream); - } - NSAssert([NSRunLoop currentRunLoop] == eventsRunLoop, @"Seek called on wrong thread"); stream = 0;