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#ifndef SkCountdown_DEFINED
9#define SkCountdown_DEFINED
10
11#include "SkCondVar.h"
12#include "SkRunnable.h"
13#include "SkTypes.h"
14
15class SkCountdown : public SkRunnable {
16public:
17    explicit SkCountdown(int32_t count);
18
19    /**
20     * Resets the countdown to the count provided.
21     */
22    void reset(int32_t count);
23
24    virtual void run() SK_OVERRIDE;
25
26    /**
27     * Blocks until run() has been called count times.
28     */
29    void wait();
30
31private:
32    SkCondVar fReady;
33    int32_t   fCount;
34};
35
36#endif
37