| Index: base/task.h | 
| diff --git a/base/task.h b/base/task.h | 
| index b698576ef899e3d4c0faad1c8845f13b22bbe4e1..ae47f32615b1b789db5b8a841b5908e62a9ed57d 100644 | 
| --- a/base/task.h | 
| +++ b/base/task.h | 
| @@ -546,4 +546,24 @@ inline Task* NewRunnableFunction(Function function, const A& a, const B& b, | 
| function, MakeTuple(a, b, c, d, e, f, g, h)); | 
| } | 
|  | 
| +namespace base { | 
| + | 
| +// ScopedTaskRunner is akin to scoped_ptr for Tasks.  It ensures that the Task | 
| +// is executed and deleted no matter how the current scope exits. | 
| +class BASE_API ScopedTaskRunner { | 
| + public: | 
| +  // Takes ownership of the task. | 
| +  explicit ScopedTaskRunner(Task* task); | 
| +  ~ScopedTaskRunner(); | 
| + | 
| +  Task* Release(); | 
| + | 
| + private: | 
| +  Task* task_; | 
| + | 
| +  DISALLOW_IMPLICIT_CONSTRUCTORS(ScopedTaskRunner); | 
| +}; | 
| + | 
| +}  // namespace base | 
| + | 
| #endif  // BASE_TASK_H_ | 
|  |