From: Jianpeng Ma Date: Fri, 30 Dec 2016 12:11:19 +0000 (+0800) Subject: common/Finisher: Using queue(list) instead queue(context*). X-Git-Tag: v12.0.0~299^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=refs%2Fpull%2F8942%2Fhead;p=ceph.git common/Finisher: Using queue(list) instead queue(context*). Avoid call many time queue(context*). Signed-off-by: Jianpeng Ma --- diff --git a/src/os/bluestore/BlueStore.cc b/src/os/bluestore/BlueStore.cc index 801d333965a..5a057204c82 100644 --- a/src/os/bluestore/BlueStore.cc +++ b/src/os/bluestore/BlueStore.cc @@ -6556,12 +6556,10 @@ void BlueStore::_txc_finish_kv(TransContext *txc) finishers[n]->queue(txc->onreadable); txc->onreadable = NULL; } - while (!txc->oncommits.empty()) { - auto f = txc->oncommits.front(); - finishers[n]->queue(f); - txc->oncommits.pop_front(); - } + if (!txc->oncommits.empty()) { + finishers[n]->queue(txc->oncommits); + } op_queue_release_throttle(txc); } diff --git a/src/os/kstore/KStore.cc b/src/os/kstore/KStore.cc index 2f3708fdc74..025fff8fd95 100755 --- a/src/os/kstore/KStore.cc +++ b/src/os/kstore/KStore.cc @@ -1988,9 +1988,8 @@ void KStore::_txc_finish_kv(TransContext *txc) finisher.queue(txc->oncommit); txc->oncommit = NULL; } - while (!txc->oncommits.empty()) { - finisher.queue(txc->oncommits.front()); - txc->oncommits.pop_front(); + if (!txc->oncommits.empty()) { + finisher.queue(txc->oncommits); } throttle_ops.put(txc->ops);