gfx/skia/trunk/src/utils/SkCountdown.cpp

branch
TOR_BUG_3246
changeset 7
129ffea94266
equal deleted inserted replaced
-1:000000000000 0:18af270a84eb
1 /*
2 * Copyright 2012 Google Inc.
3 *
4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file.
6 */
7
8 #include "SkCountdown.h"
9 #include "SkThread.h"
10
11 SkCountdown::SkCountdown(int32_t count)
12 : fCount(count) {}
13
14 void SkCountdown::reset(int32_t count) {
15 fCount = count;
16 }
17
18 void SkCountdown::run() {
19 if (sk_atomic_dec(&fCount) == 1) {
20 fReady.lock();
21 fReady.signal();
22 fReady.unlock();
23 }
24 }
25
26 void SkCountdown::wait() {
27 fReady.lock();
28 while (fCount > 0) {
29 fReady.wait();
30 }
31 fReady.unlock();
32 }

mercurial