Don't expose the pthread_mutex_t underlying the Mutex & Mutex::Locker classes.

No one was using it and Locker(pthread_mutex_t *) immediately asserts for 
pthread_mutex_t's that don't come from a Mutex anyway.  Rather than try to make
that work, we should maintain the Mutex abstraction and not pass around the
platform implementation...

Make Mutex::Locker::Lock take a Mutex & or a Mutex *, and remove the constructor
taking a pthread_mutex_t *.  You no longer need to call Mutex::GetMutex to pass
your mutex to a Locker (you can't in fact, since I made it private.)

llvm-svn: 156221
This commit is contained in:
Jim Ingham
2012-05-04 23:02:50 +00:00
parent e326ed33a8
commit 10ebffa48a
17 changed files with 74 additions and 72 deletions

View File

@@ -118,12 +118,12 @@ ModuleList::RemoveOrphans (bool mandatory)
if (mandatory)
{
locker.Lock (m_modules_mutex.GetMutex());
locker.Lock (m_modules_mutex);
}
else
{
// Not mandatory, remove orphans if we can get the mutex
if (!locker.TryLock(m_modules_mutex.GetMutex()))
if (!locker.TryLock(m_modules_mutex))
return 0;
}
collection::iterator pos = m_modules.begin();