diff options
author | darin@google.com <darin@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-19 18:36:23 +0000 |
---|---|---|
committer | darin@google.com <darin@google.com@0039d316-1c4b-4281-b951-d872f2087c98> | 2008-08-19 18:36:23 +0000 |
commit | b16ef312cb28582a1d324d20e4328afeef2c7538 (patch) | |
tree | bcbc40bbe3950501c888eab655f5070619ad1ac7 /base/task.h | |
parent | 4880adb3346faa91feea9d8ecfecc4ef499bf7fc (diff) | |
download | chromium_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.h | 16 |
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() {} |