| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 #include "platform/globals.h" // NOLINT | 5 #include "platform/globals.h" // NOLINT |
| 6 #if defined(TARGET_OS_MACOS) | 6 #if defined(TARGET_OS_MACOS) |
| 7 | 7 |
| 8 #include "vm/os_thread.h" | 8 #include "vm/os_thread.h" |
| 9 | 9 |
| 10 #include <sys/errno.h> // NOLINT | 10 #include <sys/errno.h> // NOLINT |
| (...skipping 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 ThreadId OSThread::ThreadIdFromIntPtr(intptr_t id) { | 188 ThreadId OSThread::ThreadIdFromIntPtr(intptr_t id) { |
| 189 return reinterpret_cast<ThreadId>(id); | 189 return reinterpret_cast<ThreadId>(id); |
| 190 } | 190 } |
| 191 | 191 |
| 192 | 192 |
| 193 bool OSThread::Compare(ThreadId a, ThreadId b) { | 193 bool OSThread::Compare(ThreadId a, ThreadId b) { |
| 194 return pthread_equal(a, b) != 0; | 194 return pthread_equal(a, b) != 0; |
| 195 } | 195 } |
| 196 | 196 |
| 197 | 197 |
| 198 void OSThread::GetThreadCpuUsage(ThreadId thread_id, int64_t* cpu_usage) { | |
| 199 ASSERT(thread_id == GetCurrentThreadId()); | |
| 200 ASSERT(cpu_usage != NULL); | |
| 201 // TODO(johnmccutchan): Enable this after fixing issue with macos directory | |
| 202 // watcher. | |
| 203 const bool get_cpu_usage = false; | |
| 204 if (get_cpu_usage) { | |
| 205 mach_msg_type_number_t count = THREAD_BASIC_INFO_COUNT; | |
| 206 thread_basic_info_data_t info_data; | |
| 207 thread_basic_info_t info = &info_data; | |
| 208 mach_port_t thread_port = mach_thread_self(); | |
| 209 kern_return_t r = thread_info(thread_port, THREAD_BASIC_INFO, | |
| 210 (thread_info_t)info, &count); | |
| 211 mach_port_deallocate(mach_task_self(), thread_port); | |
| 212 if (r == KERN_SUCCESS) { | |
| 213 *cpu_usage = (info->user_time.seconds * kMicrosecondsPerSecond) + | |
| 214 info->user_time.microseconds; | |
| 215 return; | |
| 216 } | |
| 217 } | |
| 218 *cpu_usage = 0; | |
| 219 } | |
| 220 | |
| 221 | |
| 222 Mutex::Mutex() { | 198 Mutex::Mutex() { |
| 223 pthread_mutexattr_t attr; | 199 pthread_mutexattr_t attr; |
| 224 int result = pthread_mutexattr_init(&attr); | 200 int result = pthread_mutexattr_init(&attr); |
| 225 VALIDATE_PTHREAD_RESULT(result); | 201 VALIDATE_PTHREAD_RESULT(result); |
| 226 | 202 |
| 227 #if defined(DEBUG) | 203 #if defined(DEBUG) |
| 228 result = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); | 204 result = pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_ERRORCHECK); |
| 229 VALIDATE_PTHREAD_RESULT(result); | 205 VALIDATE_PTHREAD_RESULT(result); |
| 230 #endif // defined(DEBUG) | 206 #endif // defined(DEBUG) |
| 231 | 207 |
| (...skipping 202 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 434 void Monitor::NotifyAll() { | 410 void Monitor::NotifyAll() { |
| 435 // When running with assertions enabled we track the owner. | 411 // When running with assertions enabled we track the owner. |
| 436 ASSERT(IsOwnedByCurrentThread()); | 412 ASSERT(IsOwnedByCurrentThread()); |
| 437 int result = pthread_cond_broadcast(data_.cond()); | 413 int result = pthread_cond_broadcast(data_.cond()); |
| 438 VALIDATE_PTHREAD_RESULT(result); | 414 VALIDATE_PTHREAD_RESULT(result); |
| 439 } | 415 } |
| 440 | 416 |
| 441 } // namespace dart | 417 } // namespace dart |
| 442 | 418 |
| 443 #endif // defined(TARGET_OS_MACOS) | 419 #endif // defined(TARGET_OS_MACOS) |
| OLD | NEW |