| Index: runtime/bin/thread_fuchsia.cc
|
| diff --git a/runtime/bin/thread_fuchsia.cc b/runtime/bin/thread_fuchsia.cc
|
| index 5a9b35103af78bad7c7cc95655928cbb3e2418bb..f424ebbae198636e3a9fb9974c1929b582876cdd 100644
|
| --- a/runtime/bin/thread_fuchsia.cc
|
| +++ b/runtime/bin/thread_fuchsia.cc
|
| @@ -26,7 +26,6 @@ namespace bin {
|
| Utils::StrError(result, error_buf, kBufferSize)); \
|
| }
|
|
|
| -
|
| #ifdef DEBUG
|
| #define RETURN_ON_PTHREAD_FAILURE(result) \
|
| if (result != 0) { \
|
| @@ -43,7 +42,6 @@ namespace bin {
|
| }
|
| #endif
|
|
|
| -
|
| static void ComputeTimeSpecMicros(struct timespec* ts, int64_t micros) {
|
| int64_t secs = micros / kMicrosecondsPerSecond;
|
| int64_t nanos =
|
| @@ -58,7 +56,6 @@ static void ComputeTimeSpecMicros(struct timespec* ts, int64_t micros) {
|
| }
|
| }
|
|
|
| -
|
| class ThreadStartData {
|
| public:
|
| ThreadStartData(Thread::ThreadStartFunction function, uword parameter)
|
| @@ -74,7 +71,6 @@ class ThreadStartData {
|
| DISALLOW_COPY_AND_ASSIGN(ThreadStartData);
|
| };
|
|
|
| -
|
| // Dispatch to the thread start function provided by the caller. This trampoline
|
| // is used to ensure that the thread is properly destroyed if the thread just
|
| // exits.
|
| @@ -91,7 +87,6 @@ static void* ThreadStart(void* data_ptr) {
|
| return NULL;
|
| }
|
|
|
| -
|
| int Thread::Start(ThreadStartFunction function, uword parameter) {
|
| pthread_attr_t attr;
|
| int result = pthread_attr_init(&attr);
|
| @@ -115,7 +110,6 @@ int Thread::Start(ThreadStartFunction function, uword parameter) {
|
| return 0;
|
| }
|
|
|
| -
|
| const ThreadLocalKey Thread::kUnsetThreadLocalKey =
|
| static_cast<pthread_key_t>(-1);
|
| const ThreadId Thread::kInvalidThreadId = static_cast<ThreadId>(0);
|
| @@ -128,48 +122,40 @@ ThreadLocalKey Thread::CreateThreadLocal() {
|
| return key;
|
| }
|
|
|
| -
|
| void Thread::DeleteThreadLocal(ThreadLocalKey key) {
|
| ASSERT(key != kUnsetThreadLocalKey);
|
| int result = pthread_key_delete(key);
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| void Thread::SetThreadLocal(ThreadLocalKey key, uword value) {
|
| ASSERT(key != kUnsetThreadLocalKey);
|
| int result = pthread_setspecific(key, reinterpret_cast<void*>(value));
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| intptr_t Thread::GetMaxStackSize() {
|
| const int kStackSize = (128 * kWordSize * KB);
|
| return kStackSize;
|
| }
|
|
|
| -
|
| ThreadId Thread::GetCurrentThreadId() {
|
| return pthread_self();
|
| }
|
|
|
| -
|
| intptr_t Thread::ThreadIdToIntPtr(ThreadId id) {
|
| ASSERT(sizeof(id) == sizeof(intptr_t));
|
| return static_cast<intptr_t>(id);
|
| }
|
|
|
| -
|
| bool Thread::Compare(ThreadId a, ThreadId b) {
|
| return (pthread_equal(a, b) != 0);
|
| }
|
|
|
| -
|
| void Thread::InitOnce() {
|
| // Nothing to be done.
|
| }
|
|
|
| -
|
| Mutex::Mutex() {
|
| pthread_mutexattr_t attr;
|
| int result = pthread_mutexattr_init(&attr);
|
| @@ -188,14 +174,12 @@ Mutex::Mutex() {
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| Mutex::~Mutex() {
|
| int result = pthread_mutex_destroy(data_.mutex());
|
| // Verify that the pthread_mutex was destroyed.
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| void Mutex::Lock() {
|
| int result = pthread_mutex_lock(data_.mutex());
|
| // Specifically check for dead lock to help debugging.
|
| @@ -204,7 +188,6 @@ void Mutex::Lock() {
|
| // TODO(iposva): Do we need to track lock owners?
|
| }
|
|
|
| -
|
| bool Mutex::TryLock() {
|
| int result = pthread_mutex_trylock(data_.mutex());
|
| // Return false if the lock is busy and locking failed.
|
| @@ -216,7 +199,6 @@ bool Mutex::TryLock() {
|
| return true;
|
| }
|
|
|
| -
|
| void Mutex::Unlock() {
|
| // TODO(iposva): Do we need to track lock owners?
|
| int result = pthread_mutex_unlock(data_.mutex());
|
| @@ -225,7 +207,6 @@ void Mutex::Unlock() {
|
| ASSERT(result == 0); // Verify no other errors.
|
| }
|
|
|
| -
|
| Monitor::Monitor() {
|
| pthread_mutexattr_t mutex_attr;
|
| int result = pthread_mutexattr_init(&mutex_attr);
|
| @@ -256,7 +237,6 @@ Monitor::Monitor() {
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| Monitor::~Monitor() {
|
| int result = pthread_mutex_destroy(data_.mutex());
|
| VALIDATE_PTHREAD_RESULT(result);
|
| @@ -265,26 +245,22 @@ Monitor::~Monitor() {
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| void Monitor::Enter() {
|
| int result = pthread_mutex_lock(data_.mutex());
|
| VALIDATE_PTHREAD_RESULT(result);
|
| // TODO(iposva): Do we need to track lock owners?
|
| }
|
|
|
| -
|
| void Monitor::Exit() {
|
| // TODO(iposva): Do we need to track lock owners?
|
| int result = pthread_mutex_unlock(data_.mutex());
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| Monitor::WaitResult Monitor::Wait(int64_t millis) {
|
| return WaitMicros(millis * kMicrosecondsPerMillisecond);
|
| }
|
|
|
| -
|
| Monitor::WaitResult Monitor::WaitMicros(int64_t micros) {
|
| // TODO(iposva): Do we need to track lock owners?
|
| Monitor::WaitResult retval = kNotified;
|
| @@ -304,14 +280,12 @@ Monitor::WaitResult Monitor::WaitMicros(int64_t micros) {
|
| return retval;
|
| }
|
|
|
| -
|
| void Monitor::Notify() {
|
| // TODO(iposva): Do we need to track lock owners?
|
| int result = pthread_cond_signal(data_.cond());
|
| VALIDATE_PTHREAD_RESULT(result);
|
| }
|
|
|
| -
|
| void Monitor::NotifyAll() {
|
| // TODO(iposva): Do we need to track lock owners?
|
| int result = pthread_cond_broadcast(data_.cond());
|
|
|