Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(171)

Side by Side Diff: runtime/vm/thread_barrier.h

Issue 2481873005: clang-format runtime/vm (Closed)
Patch Set: Merge Created 4 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « runtime/vm/thread.cc ('k') | runtime/vm/thread_barrier_test.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, 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 #ifndef RUNTIME_VM_THREAD_BARRIER_H_ 5 #ifndef RUNTIME_VM_THREAD_BARRIER_H_
6 #define RUNTIME_VM_THREAD_BARRIER_H_ 6 #define RUNTIME_VM_THREAD_BARRIER_H_
7 7
8 #include "vm/globals.h" 8 #include "vm/globals.h"
9 #include "vm/os_thread.h" 9 #include "vm/os_thread.h"
10 #include "vm/lockers.h" 10 #include "vm/lockers.h"
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 // barrier.Exit(); 42 // barrier.Exit();
43 // 43 //
44 // Note that the calls to Sync() "line up" in time, but there is no such 44 // Note that the calls to Sync() "line up" in time, but there is no such
45 // guarantee for Exit(). 45 // guarantee for Exit().
46 // 46 //
47 class ThreadBarrier { 47 class ThreadBarrier {
48 public: 48 public:
49 explicit ThreadBarrier(intptr_t num_threads, 49 explicit ThreadBarrier(intptr_t num_threads,
50 Monitor* monitor, 50 Monitor* monitor,
51 Monitor* done_monitor) 51 Monitor* done_monitor)
52 : num_threads_(num_threads), 52 : num_threads_(num_threads),
53 monitor_(monitor), 53 monitor_(monitor),
54 remaining_(num_threads), 54 remaining_(num_threads),
55 parity_(false), 55 parity_(false),
56 done_monitor_(done_monitor), 56 done_monitor_(done_monitor),
57 done_(false) { 57 done_(false) {
58 ASSERT(remaining_ > 0); 58 ASSERT(remaining_ > 0);
59 } 59 }
60 60
61 void Sync() { 61 void Sync() {
62 MonitorLocker ml(monitor_); 62 MonitorLocker ml(monitor_);
63 ASSERT(remaining_ > 0); 63 ASSERT(remaining_ > 0);
64 if (--remaining_ > 0) { 64 if (--remaining_ > 0) {
65 // I'm not last to arrive; wait until next round. 65 // I'm not last to arrive; wait until next round.
66 bool old_parity = parity_; 66 bool old_parity = parity_;
67 while (parity_ == old_parity) { 67 while (parity_ == old_parity) {
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
111 111
112 Monitor* done_monitor_; // TODO(koda): Try to optimize this away. 112 Monitor* done_monitor_; // TODO(koda): Try to optimize this away.
113 bool done_; 113 bool done_;
114 114
115 DISALLOW_COPY_AND_ASSIGN(ThreadBarrier); 115 DISALLOW_COPY_AND_ASSIGN(ThreadBarrier);
116 }; 116 };
117 117
118 } // namespace dart 118 } // namespace dart
119 119
120 #endif // RUNTIME_VM_THREAD_BARRIER_H_ 120 #endif // RUNTIME_VM_THREAD_BARRIER_H_
OLDNEW
« no previous file with comments | « runtime/vm/thread.cc ('k') | runtime/vm/thread_barrier_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698