| Index: dm/DMTaskRunner.h
|
| diff --git a/dm/DMTaskRunner.h b/dm/DMTaskRunner.h
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..5d7b320d6cc653bf238267fd93b9db5e9cac7619
|
| --- /dev/null
|
| +++ b/dm/DMTaskRunner.h
|
| @@ -0,0 +1,28 @@
|
| +#ifndef DMTaskRunner_DEFINED
|
| +#define DMTaskRunner_DEFINED
|
| +
|
| +#include "SkThreadPool.h"
|
| +#include "SkTypes.h"
|
| +
|
| +// TaskRunner runs Tasks on one of two threadpools depending on the Task's usesGpu() method.
|
| +// This lets us drive the GPU with a small number of threads (e.g. 2 or 4 can be faster than 1)
|
| +// while not swamping it with requests from the full fleet of threads that CPU-bound tasks run on.
|
| +
|
| +namespace DM {
|
| +
|
| +class Task;
|
| +
|
| +class TaskRunner : SkNoncopyable {
|
| +public:
|
| + TaskRunner(int cputhreads, int gpuThreads);
|
| +
|
| + void add(Task* task);
|
| + void wait();
|
| +
|
| +private:
|
| + SkThreadPool fMain, fGpu;
|
| +};
|
| +
|
| +} // namespace DM
|
| +
|
| +#endif // DMTaskRunner_DEFINED
|
|
|