aboutsummaryrefslogtreecommitdiff
path: root/Foundation/GTMNSThread+Blocks.m
diff options
context:
space:
mode:
authorGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2012-11-15 01:00:14 +0000
committerGravatar gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3>2012-11-15 01:00:14 +0000
commit9f7bc647094f83ae63915d7d1d2984f78c812d8a (patch)
tree167289efb0b0daaf4dbe7c30ee5747d1529a88fc /Foundation/GTMNSThread+Blocks.m
parentf8a42f9773fee05642564c74f157497e41d02bde (diff)
[Author: aharper]
Exclude on 10.4 and only set name when pthread_setname_np is available (10.6 and later). R=dmaclach,thomasvl APPROVED=dmaclach DELTA=19 (17 added, 0 deleted, 2 changed)
Diffstat (limited to 'Foundation/GTMNSThread+Blocks.m')
-rw-r--r--Foundation/GTMNSThread+Blocks.m15
1 files changed, 13 insertions, 2 deletions
diff --git a/Foundation/GTMNSThread+Blocks.m b/Foundation/GTMNSThread+Blocks.m
index 7b5a0d1..cb5243d 100644
--- a/Foundation/GTMNSThread+Blocks.m
+++ b/Foundation/GTMNSThread+Blocks.m
@@ -18,7 +18,11 @@
#import "GTMNSThread+Blocks.h"
-#include <pthread.h>
+#import <pthread.h>
+#import <dlfcn.h>
+
+// Only available 10.6 and later.
+typedef int (*pthread_setname_np_Ptr)(const char*);
#if NS_BLOCKS_AVAILABLE
@@ -52,12 +56,17 @@
#endif // NS_BLOCKS_AVAILABLE
+#if GTM_IPHONE_SDK || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5)
+
@implementation GTMSimpleWorkerThread
- (void)setThreadDebuggerName:(NSString *)name {
// [NSThread setName:] doesn't actually set the name in such a way that the
// debugger can see it. So we handle it here instead.
- pthread_setname_np([name UTF8String]);
+ // pthread_setname_np only available 10.6 and later, look up dynamically.
+ pthread_setname_np_Ptr setName = dlsym(RTLD_DEFAULT, "pthread_setname_np");
+ if (!setName) return;
+ setName([name UTF8String]);
}
- (void)main {
@@ -90,3 +99,5 @@
}
@end
+
+#endif // GTM_IPHONE_SDK || (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_10_5)