aboutsummaryrefslogtreecommitdiffhomepage
path: root/include/private/SkSemaphore.h
diff options
context:
space:
mode:
authorGravatar Mike Klein <mtklein@chromium.org>2017-02-21 22:53:16 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-02-22 16:17:39 +0000
commit384b90af5ccdbb071f32e20b382f41351b2a0b69 (patch)
tree572dfe34b3cc547b8f12a379f0a5aa134095d7d3 /include/private/SkSemaphore.h
parentd44dd4c35660863db8baeedd90fd401ed921db8a (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.h3
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();