diff options
author | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2012-11-15 01:00:14 +0000 |
---|---|---|
committer | gtm.daemon <gtm.daemon@7dc7ac4e-7543-0410-b95c-c1676fc8e2a3> | 2012-11-15 01:00:14 +0000 |
commit | 9f7bc647094f83ae63915d7d1d2984f78c812d8a (patch) | |
tree | 167289efb0b0daaf4dbe7c30ee5747d1529a88fc /Foundation/GTMNSThread+Blocks.m | |
parent | f8a42f9773fee05642564c74f157497e41d02bde (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.m | 15 |
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) |