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 |