diff options
author | 2014-09-03 14:17:48 -0700 | |
---|---|---|
committer | 2014-09-03 14:17:48 -0700 | |
commit | 2460bbdfbb1d55ef307c3189c661e65de1a7affb (patch) | |
tree | 62342a335023875d1482447bea9e29e8a0ba22fb /src/utils/SkRunnable.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/SkRunnable.h')
-rw-r--r-- | src/utils/SkRunnable.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/src/utils/SkRunnable.h b/src/utils/SkRunnable.h index 7a93b60c89..5acf4dbc61 100644 --- a/src/utils/SkRunnable.h +++ b/src/utils/SkRunnable.h @@ -8,9 +8,18 @@ #ifndef SkRunnable_DEFINED #define SkRunnable_DEFINED -struct SkRunnable { - virtual ~SkRunnable() {}; +template <typename T> +struct SkTRunnable { + virtual ~SkTRunnable() {}; + virtual void run(T&) = 0; +}; + +template <> +struct SkTRunnable<void> { + virtual ~SkTRunnable() {}; virtual void run() = 0; }; +typedef SkTRunnable<void> SkRunnable; + #endif |