Created
February 12, 2013 20:51
-
-
Save pjrobertson/4773263 to your computer and use it in GitHub Desktop.
Test app for whether or not -[NSFileManager defaultManager] returns the same instance on different thread (it does)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// main.m | |
// Threading | |
// | |
// Created by Patrick Robertson on 12/02/2013. | |
// Copyright (c) 2013 Patrick Robertson. All rights reserved. | |
// | |
#import <Foundation/Foundation.h> | |
int main(int argc, const char * argv[]) | |
{ | |
@autoreleasepool { | |
NSFileManager *fm1 = [NSFileManager defaultManager]; | |
NSLog(@"thread %@: %p",[NSString stringWithUTF8String:dispatch_queue_get_label(dispatch_get_current_queue())],fm1); | |
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ | |
NSFileManager *fm2 = [NSFileManager defaultManager]; | |
NSLog(@"thread %@: %p",[NSString stringWithUTF8String:dispatch_queue_get_label(dispatch_get_current_queue())],fm2); | |
}); | |
dispatch_sync(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^{ | |
NSFileManager *fm3 = [NSFileManager defaultManager]; | |
NSLog(@"thread %@: %p",[NSString stringWithUTF8String:dispatch_queue_get_label(dispatch_get_current_queue())],fm3); | |
}); | |
dispatch_queue_t concurrent_queue = dispatch_queue_create("concurrent queue", DISPATCH_QUEUE_CONCURRENT); | |
dispatch_sync(concurrent_queue, ^{ | |
NSFileManager *fm4 = [NSFileManager defaultManager]; | |
NSLog(@"thread %@: %p",[NSString stringWithUTF8String:dispatch_queue_get_label(dispatch_get_current_queue())],fm4); | |
}); | |
dispatch_queue_t serial_queue = dispatch_queue_create("serial queue", DISPATCH_QUEUE_SERIAL); | |
dispatch_sync(serial_queue, ^{ | |
NSFileManager *fm5 = [NSFileManager defaultManager]; | |
NSLog(@"thread %@: %p",[NSString stringWithUTF8String:dispatch_queue_get_label(dispatch_get_current_queue())],fm5); | |
}); | |
} | |
return 0; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
2013-02-12 20:48:49.484 Threading[12943:303] thread com.apple.main-thread: 0x1001081b0
2013-02-12 20:48:49.486 Threading[12943:303] thread com.apple.root.default-priority: 0x1001081b0
2013-02-12 20:48:49.488 Threading[12943:303] thread com.apple.root.background-priority: 0x1001081b0
2013-02-12 20:48:49.488 Threading[12943:303] thread conc: 0x1001081b0
2013-02-12 20:48:49.489 Threading[12943:303] thread serial: 0x1001081b0