3 #include "lldb/Host/ProcessRunLock.h"
5 namespace lldb_private {
7 ProcessRunLock::ProcessRunLock()
10 int err = ::pthread_rwlock_init(&m_rwlock, NULL); (void) err;
11 //#if LLDB_CONFIGURATION_DEBUG
16 ProcessRunLock::~ProcessRunLock()
18 int err = ::pthread_rwlock_destroy(&m_rwlock); (void) err;
19 //#if LLDB_CONFIGURATION_DEBUG
24 bool ProcessRunLock::ReadTryLock()
26 ::pthread_rwlock_rdlock(&m_rwlock);
27 if (m_running == false)
31 ::pthread_rwlock_unlock(&m_rwlock);
35 bool ProcessRunLock::ReadUnlock()
37 return ::pthread_rwlock_unlock(&m_rwlock) == 0;
40 bool ProcessRunLock::SetRunning()
42 ::pthread_rwlock_wrlock(&m_rwlock);
44 ::pthread_rwlock_unlock(&m_rwlock);
48 bool ProcessRunLock::TrySetRunning()
52 if (::pthread_rwlock_trywrlock(&m_rwlock) == 0)
56 ::pthread_rwlock_unlock(&m_rwlock);
62 bool ProcessRunLock::SetStopped()
64 ::pthread_rwlock_wrlock(&m_rwlock);
66 ::pthread_rwlock_unlock(&m_rwlock);