Merge pull request #987 from wantedly/fix-notification-dispatch
Fix NSNotificationCenter dispatch on subthreads.
This commit is contained in:
commit
feca1e8d0d
|
@ -95,7 +95,9 @@
|
|||
if (self.progressBlock) {
|
||||
self.progressBlock(0, NSURLResponseUnknownLength);
|
||||
}
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStartNotification object:self];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStartNotification object:self];
|
||||
});
|
||||
|
||||
if (floor(NSFoundationVersionNumber) <= NSFoundationVersionNumber_iOS_5_1) {
|
||||
// Make sure to run the runloop in our background thread so it can process downloaded data
|
||||
|
@ -150,7 +152,9 @@
|
|||
|
||||
if (self.connection) {
|
||||
[self.connection cancel];
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:self];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:self];
|
||||
});
|
||||
|
||||
// As we cancelled the connection, its callback won't be called and thus won't
|
||||
// maintain the isFinished and isExecuting flags.
|
||||
|
@ -216,8 +220,9 @@
|
|||
} else {
|
||||
[self.connection cancel];
|
||||
}
|
||||
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:nil];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:nil];
|
||||
});
|
||||
|
||||
if (self.completedBlock) {
|
||||
self.completedBlock(nil, nil, [NSError errorWithDomain:NSURLErrorDomain code:[((NSHTTPURLResponse *)response) statusCode] userInfo:nil], YES);
|
||||
|
@ -340,7 +345,9 @@
|
|||
CFRunLoopStop(CFRunLoopGetCurrent());
|
||||
self.thread = nil;
|
||||
self.connection = nil;
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:nil];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:nil];
|
||||
});
|
||||
}
|
||||
|
||||
if (![[NSURLCache sharedURLCache] cachedResponseForRequest:_request]) {
|
||||
|
@ -377,7 +384,9 @@
|
|||
CFRunLoopStop(CFRunLoopGetCurrent());
|
||||
self.thread = nil;
|
||||
self.connection = nil;
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:nil];
|
||||
dispatch_async(dispatch_get_main_queue(), ^{
|
||||
[[NSNotificationCenter defaultCenter] postNotificationName:SDWebImageDownloadStopNotification object:nil];
|
||||
});
|
||||
}
|
||||
|
||||
if (self.completedBlock) {
|
||||
|
|
Loading…
Reference in New Issue