summaryrefslogtreecommitdiffstats
path: root/base/task.h
diff options
context:
space:
mode:
authordarin@google.com <darin@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-19 18:36:23 +0000
committerdarin@google.com <darin@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-19 18:36:23 +0000
commitb16ef312cb28582a1d324d20e4328afeef2c7538 (patch)
treebcbc40bbe3950501c888eab655f5070619ad1ac7 /base/task.h
parent4880adb3346faa91feea9d8ecfecc4ef499bf7fc (diff)
downloadchromium_src-b16ef312cb28582a1d324d20e4328afeef2c7538.zip
chromium_src-b16ef312cb28582a1d324d20e4328afeef2c7538.tar.gz
chromium_src-b16ef312cb28582a1d324d20e4328afeef2c7538.tar.bz2
Define MessagePumpDefault and use it to implement MessageLoop on non-Windows
platforms. This is actually just a first-step toward the real fix which is to use MessagePumpDefault on all platforms on non-UI and non-IO threads. This CL also fixes some GCC compilation errors. I renamed MessageLoopOwnable to TaskBase, which seems more appropriate since a MessageLoopOwnable has a next Task pointer and clearly is only meaningful in the context of Task. (I wonder why it is even a separate class, but that is another issue.) I had to make the next_task / set_next_task methods public since they are used by an inner class of MessageLoop. Perhaps those inner classes should be made into top-level classes, but that seemed like too much to change at this time. R=jar,mmentovai git-svn-id: svn://svn.chromium.org/chrome/trunk/src@1045 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base/task.h')
-rw-r--r--base/task.h16
1 files changed, 8 insertions, 8 deletions
diff --git a/base/task.h b/base/task.h
index 3a5c3cf..0988be5 100644
--- a/base/task.h
+++ b/base/task.h
@@ -45,10 +45,10 @@
class Task;
-class MessageLoopOwnable : public tracked_objects::Tracked {
+class TaskBase : public tracked_objects::Tracked {
public:
- MessageLoopOwnable() { Reset(); }
- virtual ~MessageLoopOwnable() {}
+ TaskBase() { Reset(); }
+ virtual ~TaskBase() {}
// Use this method to adjust the priority given to a task by MessageLoop.
void set_priority(int priority) { priority_ = priority; }
@@ -58,6 +58,9 @@ class MessageLoopOwnable : public tracked_objects::Tracked {
void set_nestable(bool nestable) { nestable_ = nestable; }
bool nestable() { return nestable_; }
+ // Used to manage a linked-list of tasks.
+ Task* next_task() const { return next_task_; }
+ void set_next_task(Task* next) { next_task_ = next; }
protected:
// If a derived class wishes to re-use this instance, then it should override
@@ -86,9 +89,6 @@ class MessageLoopOwnable : public tracked_objects::Tracked {
bool is_owned_by_message_loop() const { return 0 <= posted_task_delay_; }
void set_posted_task_delay(int delay) { posted_task_delay_ = delay; }
- Task* next_task() const { return next_task_; }
- void set_next_task(Task* next) { next_task_ = next; }
-
// Priority for execution by MessageLoop. 0 is default. Higher means run
// sooner, and lower (including negative) means run less soon.
int priority_;
@@ -105,7 +105,7 @@ class MessageLoopOwnable : public tracked_objects::Tracked {
// only in the top level message loop.
bool nestable_;
- DISALLOW_EVIL_CONSTRUCTORS(MessageLoopOwnable);
+ DISALLOW_COPY_AND_ASSIGN(TaskBase);
};
@@ -114,7 +114,7 @@ class MessageLoopOwnable : public tracked_objects::Tracked {
// A task is a generic runnable thingy, usually used for running code on a
// different thread or for scheduling future tasks off of the message loop.
-class Task : public MessageLoopOwnable {
+class Task : public TaskBase {
public:
Task() {}
virtual ~Task() {}