| OLD | NEW |
| 1 // Copyright (c) 2014, the Dartino project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dartino 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.md file. | 3 // BSD-style license that can be found in the LICENSE.md file. |
| 4 | 4 |
| 5 #include "src/vm/thread.h" | 5 #include "src/vm/thread.h" |
| 6 #include "src/vm/thread_pool.h" | 6 #include "src/vm/thread_pool.h" |
| 7 | 7 |
| 8 namespace fletch { | 8 namespace dartino { |
| 9 | 9 |
| 10 ThreadPool::ThreadPool(int max_threads) | 10 ThreadPool::ThreadPool(int max_threads) |
| 11 : monitor_(Platform::CreateMonitor()), | 11 : monitor_(Platform::CreateMonitor()), |
| 12 max_threads_(max_threads), | 12 max_threads_(max_threads), |
| 13 threads_(0), | 13 threads_(0), |
| 14 thread_info_(NULL), | 14 thread_info_(NULL), |
| 15 started_(false) {} | 15 started_(false) {} |
| 16 | 16 |
| 17 ThreadPool::~ThreadPool() { delete monitor_; } | 17 ThreadPool::~ThreadPool() { delete monitor_; } |
| 18 | 18 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 82 | 82 |
| 83 void ThreadPool::ThreadDone() { | 83 void ThreadPool::ThreadDone() { |
| 84 // We don't expect a thread to be returned to the system often, so the simple | 84 // We don't expect a thread to be returned to the system often, so the simple |
| 85 // solution of always taking the lock should be fine here. | 85 // solution of always taking the lock should be fine here. |
| 86 ScopedMonitorLock locker(monitor_); | 86 ScopedMonitorLock locker(monitor_); |
| 87 if (--threads_ == 0) { | 87 if (--threads_ == 0) { |
| 88 monitor_->NotifyAll(); | 88 monitor_->NotifyAll(); |
| 89 } | 89 } |
| 90 } | 90 } |
| 91 | 91 |
| 92 } // namespace fletch | 92 } // namespace dartino |
| OLD | NEW |