Chromium Code Reviews| Index: webkit/dom_storage/dom_storage_task_runner.cc |
| diff --git a/webkit/dom_storage/dom_storage_task_runner.cc b/webkit/dom_storage/dom_storage_task_runner.cc |
| index 6a1afb5a123f29bba0d3ab8440df06753d4c41df..7c384c9b70a59931b3ba50535a4e6b33975aa669 100644 |
| --- a/webkit/dom_storage/dom_storage_task_runner.cc |
| +++ b/webkit/dom_storage/dom_storage_task_runner.cc |
| @@ -20,17 +20,18 @@ DomStorageTaskRunner::DomStorageTaskRunner( |
| DomStorageTaskRunner::~DomStorageTaskRunner() { |
| } |
| -void DomStorageTaskRunner::PostTask( |
| +bool DomStorageTaskRunner::PostTask( |
| const tracked_objects::Location& from_here, |
| const base::Closure& task) { |
| - message_loop_->PostTask(from_here, task); |
| + return message_loop_->PostTask(from_here, task); |
| } |
| -void DomStorageTaskRunner::PostDelayedTask( |
| +bool DomStorageTaskRunner::PostDelayedTask( |
| const tracked_objects::Location& from_here, |
| const base::Closure& task, |
| base::TimeDelta delay) { |
| - message_loop_->PostDelayedTask(from_here, task, delay.InMilliseconds()); |
| + return message_loop_->PostDelayedTask(from_here, task, |
| + delay.InMilliseconds()); |
| } |
| // DomStorageWorkerPoolTaskRunner |
| @@ -47,25 +48,32 @@ DomStorageWorkerPoolTaskRunner::DomStorageWorkerPoolTaskRunner( |
| DomStorageWorkerPoolTaskRunner::~DomStorageWorkerPoolTaskRunner() { |
| } |
| -void DomStorageWorkerPoolTaskRunner::PostTask( |
| +bool DomStorageWorkerPoolTaskRunner::PostTask( |
| const tracked_objects::Location& from_here, |
| const base::Closure& task) { |
| - // TODO(michaeln): Do all tasks need to be run prior to shutdown? |
| - // Maybe make better use of the SHUTDOWN_BEHAVIOR. |
| - sequenced_worker_pool_->PostSequencedWorkerTask( |
| - sequence_token_, from_here, task); |
| + // We can skip on shutdown as the destructor of DomStorageArea will ensure |
| + // that any remaining data is committed to disk. |
| + return sequenced_worker_pool_->PostSequencedWorkerTaskWithShutdownBehavior( |
| + sequence_token_, from_here, task, |
| + base::SequencedWorkerPool::SKIP_ON_SHUTDOWN); |
| } |
| -void DomStorageWorkerPoolTaskRunner::PostDelayedTask( |
| +bool DomStorageWorkerPoolTaskRunner::PostDelayedTask( |
| const tracked_objects::Location& from_here, |
| const base::Closure& task, |
| base::TimeDelta delay) { |
| // Post a task to call this->PostTask() after the delay. |
| - message_loop_->PostDelayedTask( |
| + return message_loop_->PostDelayedTask( |
| FROM_HERE, |
| - base::Bind(&DomStorageWorkerPoolTaskRunner::PostTask, this, |
| + base::Bind(&DomStorageWorkerPoolTaskRunner::PostTaskVoid, this, |
| from_here, task), |
| delay.InMilliseconds()); |
| } |
| +void DomStorageWorkerPoolTaskRunner::PostTaskVoid( |
| + const tracked_objects::Location& from_here, |
| + const base::Closure& task) { |
| + ignore_result(PostTask(from_here, task)); |
|
michaeln
2012/02/23 05:15:29
Did you try base::IgnoreResult (see example usage
benm (inactive)
2012/02/23 12:27:40
Oh cool, I didn't notice there were two ignoreresu
|
| +} |
| + |
| } // namespace dom_storage |