diff options
author | mtklein <mtklein@google.com> | 2014-09-03 14:17:48 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2014-09-03 14:17:48 -0700 |
commit | 2460bbdfbb1d55ef307c3189c661e65de1a7affb (patch) | |
tree | 62342a335023875d1482447bea9e29e8a0ba22fb /src/utils/SkTaskGroup.h | |
parent | 9c7207b5dc71dc5a96a2eb107d401133333d5b6f (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.h | 34 |
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 |