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
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}
33