blob: bf214d13f63755cb73cc9bc916417ec76ba2cd08 [file] [log] [blame]
license.botbf09a502008-08-24 00:55:551// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
initial.commitd7cae122008-07-26 21:49:384
5#ifndef BASE_WORKER_POOL_H_
6#define BASE_WORKER_POOL_H_
7
[email protected]43a973a2008-07-30 04:38:388#include "base/tracked.h"
9
10class Task;
initial.commitd7cae122008-07-26 21:49:3811
12// This is a facility that runs tasks that don't require a specific thread or
13// a message loop.
14class WorkerPool {
15 public:
[email protected]43a973a2008-07-30 04:38:3816 // This function posts |task| to run on a worker thread. |task_is_slow|
17 // should be used for tasks that will take a long time to execute. Returns
18 // false if |task| could not be posted to a worker thread. Regardless of
19 // return value, ownership of |task| is transferred to the worker pool.
20 static bool PostTask(const tracked_objects::Location& from_here,
21 Task* task, bool task_is_slow);
initial.commitd7cae122008-07-26 21:49:3822};
23
24#endif // BASE_WORKER_POOL_H_