|
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 |
|
15 class SkCountdown : public SkRunnable { |
|
16 public: |
|
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 |
|
31 private: |
|
32 SkCondVar fReady; |
|
33 int32_t fCount; |
|
34 }; |
|
35 |
|
36 #endif |