blob: 98b35450717721d3baefe661defd004d82bcb042 [file] [log] [blame]
scroggo@google.com4177ef42012-10-31 15:52:16 +00001/*
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
11SkCountdown::SkCountdown(int32_t count)
12: fCount(count) {}
13
14void SkCountdown::reset(int32_t count) {
15 fCount = count;
16}
17
18void SkCountdown::run() {
19 if (sk_atomic_dec(&fCount) == 1) {
20 fReady.lock();
21 fReady.signal();
22 fReady.unlock();
23 }
24}
25
26void SkCountdown::wait() {
27 fReady.lock();
28 while (fCount > 0) {
29 fReady.wait();
30 }
31 fReady.unlock();
32}