aboutsummaryrefslogtreecommitdiff
path: root/source/Host/macosx/HostThreadMacOSX.mm
diff options
context:
space:
mode:
Diffstat (limited to 'source/Host/macosx/HostThreadMacOSX.mm')
-rw-r--r--source/Host/macosx/HostThreadMacOSX.mm94
1 files changed, 31 insertions, 63 deletions
diff --git a/source/Host/macosx/HostThreadMacOSX.mm b/source/Host/macosx/HostThreadMacOSX.mm
index c84a78efd9e6..c5051cdf30d7 100644
--- a/source/Host/macosx/HostThreadMacOSX.mm
+++ b/source/Host/macosx/HostThreadMacOSX.mm
@@ -13,90 +13,58 @@
#include <CoreFoundation/CoreFoundation.h>
#include <Foundation/Foundation.h>
-#include <objc/objc-auto.h>
#include <pthread.h>
using namespace lldb_private;
-namespace
-{
+namespace {
pthread_once_t g_thread_create_once = PTHREAD_ONCE_INIT;
pthread_key_t g_thread_create_key = 0;
-class MacOSXDarwinThread
-{
- public:
- MacOSXDarwinThread()
- : m_pool(nil)
- {
- // Register our thread with the collector if garbage collection is enabled.
- if (objc_collectingEnabled())
- {
-#if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_5
- // On Leopard and earlier there is no way objc_registerThreadWithCollector
- // function, so we do it manually.
- auto_zone_register_thread(auto_zone());
-#else
- // On SnowLeopard and later we just call the thread registration function.
- objc_registerThreadWithCollector();
-#endif
- }
- else
- {
- m_pool = [[NSAutoreleasePool alloc] init];
- }
- }
+class MacOSXDarwinThread {
+public:
+ MacOSXDarwinThread() : m_pool(nil) {
+ m_pool = [[NSAutoreleasePool alloc] init];
+ }
- ~MacOSXDarwinThread()
- {
- if (m_pool)
- {
- [m_pool drain];
- m_pool = nil;
- }
+ ~MacOSXDarwinThread() {
+ if (m_pool) {
+ [m_pool drain];
+ m_pool = nil;
}
+ }
- static void
- PThreadDestructor(void *v)
- {
- if (v)
- delete static_cast<MacOSXDarwinThread *>(v);
- ::pthread_setspecific(g_thread_create_key, NULL);
- }
+ static void PThreadDestructor(void *v) {
+ if (v)
+ delete static_cast<MacOSXDarwinThread *>(v);
+ ::pthread_setspecific(g_thread_create_key, NULL);
+ }
- protected:
- NSAutoreleasePool *m_pool;
+protected:
+ NSAutoreleasePool *m_pool;
- private:
- DISALLOW_COPY_AND_ASSIGN(MacOSXDarwinThread);
+private:
+ DISALLOW_COPY_AND_ASSIGN(MacOSXDarwinThread);
};
-void
-InitThreadCreated()
-{
- ::pthread_key_create(&g_thread_create_key, MacOSXDarwinThread::PThreadDestructor);
+void InitThreadCreated() {
+ ::pthread_key_create(&g_thread_create_key,
+ MacOSXDarwinThread::PThreadDestructor);
}
} // namespace
-HostThreadMacOSX::HostThreadMacOSX()
- : HostThreadPosix()
-{
-}
+HostThreadMacOSX::HostThreadMacOSX() : HostThreadPosix() {}
HostThreadMacOSX::HostThreadMacOSX(lldb::thread_t thread)
- : HostThreadPosix(thread)
-{
-}
+ : HostThreadPosix(thread) {}
lldb::thread_result_t
-HostThreadMacOSX::ThreadCreateTrampoline(lldb::thread_arg_t arg)
-{
- ::pthread_once(&g_thread_create_once, InitThreadCreated);
- if (g_thread_create_key)
- {
- ::pthread_setspecific(g_thread_create_key, new MacOSXDarwinThread());
- }
+HostThreadMacOSX::ThreadCreateTrampoline(lldb::thread_arg_t arg) {
+ ::pthread_once(&g_thread_create_once, InitThreadCreated);
+ if (g_thread_create_key) {
+ ::pthread_setspecific(g_thread_create_key, new MacOSXDarwinThread());
+ }
- return HostThreadPosix::ThreadCreateTrampoline(arg);
+ return HostThreadPosix::ThreadCreateTrampoline(arg);
}