diff options
author | Mike Klein <mtklein@chromium.org> | 2017-02-21 22:53:16 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2017-02-22 16:17:39 +0000 |
commit | 384b90af5ccdbb071f32e20b382f41351b2a0b69 (patch) | |
tree | 572dfe34b3cc547b8f12a379f0a5aa134095d7d3 /include/private/SkSemaphore.h | |
parent | d44dd4c35660863db8baeedd90fd401ed921db8a (diff) |
SkExecutor
Refactoring to refamiliarize myself with SkTaskGroup and SkThreadPool.
This adds an SkExecutor interface to describe how we use SkThreadPool,
with a global setter and getter for a default instance. Then I rewrote
SkTaskGroup to work with any executor, the global default by default.
I also think I've made the SkTaskGroup::wait() borrow logic clearer
with the addition of SkSemaphore::try_wait(). This lets me keep the
semaphore count and actual count of work in perfect sync.
Change-Id: I6bbdfaeb0e2c3a43daff6192d34bc4a3f7210178
Reviewed-on: https://skia-review.googlesource.com/8836
Reviewed-by: Mike Reed <reed@google.com>
Reviewed-by: Herb Derby <herb@google.com>
Commit-Queue: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'include/private/SkSemaphore.h')
-rw-r--r-- | include/private/SkSemaphore.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/include/private/SkSemaphore.h b/include/private/SkSemaphore.h index 3da2b99ab4..dbc16b64ce 100644 --- a/include/private/SkSemaphore.h +++ b/include/private/SkSemaphore.h @@ -25,6 +25,9 @@ public: // then if the counter is <= 0, sleep this thread until the counter is > 0. void wait(); + // If the counter is positive, decrement it by 1 and return true, otherwise return false. + bool try_wait(); + // SkBaseSemaphore has no destructor. Call this to clean it up. void cleanup(); |