diff options
author | Torne (Richard Coles) <torne@google.com> | 2013-08-30 15:14:49 +0100 |
---|---|---|
committer | Torne (Richard Coles) <torne@google.com> | 2013-08-30 15:14:49 +0100 |
commit | 424c4d7b64af9d0d8fd9624f381f469654d5e3d2 (patch) | |
tree | af8b16dc2ba7fc8c8bb1c9fa18b907c847f3883d /media/base/serial_runner.cc | |
parent | c70ef2906f891fe7d218980660e4cda465717916 (diff) | |
download | chromium_org-424c4d7b64af9d0d8fd9624f381f469654d5e3d2.tar.gz |
Merge from Chromium at DEPS revision r220549
This commit was generated by merge_to_master.py.
Change-Id: I8fcb82db764ec1eb0294280936c177bd9ba8a9e9
Diffstat (limited to 'media/base/serial_runner.cc')
-rw-r--r-- | media/base/serial_runner.cc | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/media/base/serial_runner.cc b/media/base/serial_runner.cc index fa39133146..dfc4a0b9fc 100644 --- a/media/base/serial_runner.cc +++ b/media/base/serial_runner.cc @@ -59,9 +59,15 @@ SerialRunner::SerialRunner( message_loop_(base::MessageLoopProxy::current()), bound_fns_(bound_fns), done_cb_(done_cb) { - message_loop_->PostTask(FROM_HERE, base::Bind( - &SerialRunner::RunNextInSeries, weak_this_.GetWeakPtr(), - PIPELINE_OK)); + // Respect both cancellation and calling stack guarantees for |done_cb| + // when empty. + if (bound_fns_.empty()) { + message_loop_->PostTask(FROM_HERE, base::Bind( + &SerialRunner::RunNextInSeries, weak_this_.GetWeakPtr(), PIPELINE_OK)); + return; + } + + RunNextInSeries(PIPELINE_OK); } SerialRunner::~SerialRunner() {} |