X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/e3d460c9de4426da6c630c3ae3f46173a99f82d8..dd5fb164cf5b32c462296bc65e289e100f74b59a:/OSX/libsecurity_utilities/lib/threading.cpp diff --git a/OSX/libsecurity_utilities/lib/threading.cpp b/OSX/libsecurity_utilities/lib/threading.cpp index bfe6427c..4472c7f7 100644 --- a/OSX/libsecurity_utilities/lib/threading.cpp +++ b/OSX/libsecurity_utilities/lib/threading.cpp @@ -28,6 +28,7 @@ #include #include #include +#include #include // WWDC 2007 thread-crash workaround #include // WWDC 2007 thread-crash workaround @@ -91,6 +92,9 @@ Mutex::Mutex(Type type) Mutex::~Mutex() { int result = pthread_mutex_destroy(&me); + if(result) { + secerror("Probable bug: error destroying Mutex: %d", result); + } check(result); } @@ -156,7 +160,6 @@ void CountingMutex::enter() { lock(); mCount++; - secdebug("cmutex", "%p up to %d", this, mCount); unlock(); } @@ -165,7 +168,6 @@ bool CountingMutex::tryEnter() if (!tryLock()) return false; mCount++; - secdebug("cmutex", "%p up to %d (was try)", this, mCount); unlock(); return true; } @@ -175,14 +177,12 @@ void CountingMutex::exit() lock(); assert(mCount > 0); mCount--; - secdebug("cmutex", "%p down to %d", this, mCount); unlock(); } void CountingMutex::finishEnter() { mCount++; - secdebug("cmutex", "%p finish up to %d", this, mCount); unlock(); } @@ -190,7 +190,6 @@ void CountingMutex::finishExit() { assert(mCount > 0); mCount--; - secdebug("cmutex", "%p finish down to %d", this, mCount); unlock(); } @@ -256,6 +255,7 @@ Thread::~Thread() void Thread::run() { + pthread_t pt; pthread_attr_t ptattrs; int err, ntries = 10; // 10 is arbitrary @@ -264,7 +264,7 @@ void Thread::run() { syslog(LOG_ERR, "error %d setting thread detach state", err); } - while ((err = pthread_create(&self.mIdent, &ptattrs, runner, this) && + while ((err = pthread_create(&pt, &ptattrs, runner, this) && --ntries)) { syslog(LOG_ERR, "pthread_create() error %d", err); @@ -275,7 +275,7 @@ void Thread::run() syslog(LOG_ERR, "too many failed pthread_create() attempts"); } else - secdebug("thread", "%p created", self.mIdent); + secinfo("thread", "%p created", pt); } void *Thread::runner(void *arg) @@ -284,9 +284,9 @@ void *Thread::runner(void *arg) // otherwise it will crash if something underneath throws. { Thread *me = static_cast(arg); - secdebug("thread", "%p starting", me->self.mIdent); + secinfo("thread", "%p starting", pthread_self()); me->action(); - secdebug("thread", "%p terminating", me->self.mIdent); + secinfo("thread", "%p terminating", pthread_self()); delete me; return NULL; }