Index: base/threading/sequenced_worker_pool.cc |
diff --git a/base/threading/sequenced_worker_pool.cc b/base/threading/sequenced_worker_pool.cc |
index fb6b2478f925dc4fb2c88163168955fe2e64c3fa..68127a5b8a100bad4613d31266daca964f8f7582 100644 |
--- a/base/threading/sequenced_worker_pool.cc |
+++ b/base/threading/sequenced_worker_pool.cc |
@@ -13,6 +13,7 @@ |
#include "base/atomicops.h" |
#include "base/callback.h" |
#include "base/compiler_specific.h" |
+#include "base/critical_closure.h" |
#include "base/logging.h" |
#include "base/memory/linked_ptr.h" |
#include "base/message_loop_proxy.h" |
@@ -490,7 +491,9 @@ bool SequencedWorkerPool::Inner::PostTask( |
sequenced.sequence_token_id = sequence_token.id_; |
sequenced.shutdown_behavior = shutdown_behavior; |
sequenced.posted_from = from_here; |
- sequenced.task = task; |
+ sequenced.task = |
+ shutdown_behavior == BLOCK_SHUTDOWN ? |
+ base::MakeCriticalClosure(task) : task; |
int create_thread_id = 0; |
{ |