aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/utils/SkTaskGroup.h
diff options
context:
space:
mode:
authorGravatar mtklein <mtklein@google.com>2014-09-03 14:17:48 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2014-09-03 14:17:48 -0700
commit2460bbdfbb1d55ef307c3189c661e65de1a7affb (patch)
tree62342a335023875d1482447bea9e29e8a0ba22fb /src/utils/SkTaskGroup.h
parent9c7207b5dc71dc5a96a2eb107d401133333d5b6f (diff)
Revert of SkThreadPool ~~> SkTaskGroup (patchset #4 id:60001 of https://codereview.chromium.org/531653002/)
Reason for revert: Leaks, leaks, leaks. Original issue's description: > SkThreadPool ~~> SkTaskGroup > > SkTaskGroup is like SkThreadPool except the threads stay in > one global pool. Each SkTaskGroup itself is tiny (4 bytes) > and its wait() method applies only to tasks add()ed to that > instance, not the whole thread pool. > > This means we don't need to bring up new thread pools when > tests themselves want to use multithreading (e.g. pathops, > quilt). We just create a new SkTaskGroup and wait for that > to complete. This should be more efficient, and allow us > to expand where we use threads to really latency sensitive > places. E.g. we can probably now use these in nanobench > for CPU .skp rendering. > > Now that all threads are sharing the same pool, I think we > can remove most of the custom mechanism pathops tests use > to control threading. They'll just ride on the global pool > with all other tests now. > > This (temporarily?) removes the GPU multithreading feature > from DM, which we don't use. > > On my desktop, DM runs a little faster (57s -> 55s) in > Debug, and a lot faster in Release (36s -> 24s). The bots > show speedups of similar proportions, cutting more than a > minute off the N4/Release and Win7/Debug runtimes. > > BUG=skia: > > Committed: https://skia.googlesource.com/skia/+/9c7207b5dc71dc5a96a2eb107d401133333d5b6f R=caryclark@google.com, bsalomon@google.com, bungeman@google.com, reed@google.com, mtklein@chromium.org TBR=bsalomon@google.com, bungeman@google.com, caryclark@google.com, mtklein@chromium.org, reed@google.com NOTREECHECKS=true NOTRY=true BUG=skia: Author: mtklein@google.com Review URL: https://codereview.chromium.org/533393002
Diffstat (limited to 'src/utils/SkTaskGroup.h')
-rw-r--r--src/utils/SkTaskGroup.h34
1 files changed, 0 insertions, 34 deletions
diff --git a/src/utils/SkTaskGroup.h b/src/utils/SkTaskGroup.h
deleted file mode 100644
index af4d47aa97..0000000000
--- a/src/utils/SkTaskGroup.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright 2014 Google Inc.
- *
- * Use of this source code is governed by a BSD-style license that can be
- * found in the LICENSE file.
- */
-
-#ifndef SkTaskGroup_DEFINED
-#define SkTaskGroup_DEFINED
-
-#include "SkTypes.h"
-#include "SkRunnable.h"
-
-class SkTaskGroup : SkNoncopyable {
-public:
- // Call before creating any SkTaskGroup to set the number of threads all SkTaskGroups share.
- // If not called, we default to the number of system-reported cores.
- static void SetThreadCount(int);
-
- SkTaskGroup();
- ~SkTaskGroup() { this->wait(); }
-
- // Add a task to this SkTaskGroup. It will likely run() on another thread.
- void add(SkRunnable*);
-
- // Block until all Tasks previously add()ed to this SkTaskGroup have run().
- // You may safely reuse this SkTaskGroup after wait() returns.
- void wait();
-
-private:
- /*atomic*/ int32_t fPending;
-};
-
-#endif//SkTaskGroup_DEFINED