From 00533e43c0d1ff37e19011eec6541f0334d0ea80 Mon Sep 17 00:00:00 2001 From: Jianpeng Ma Date: Fri, 30 Dec 2016 20:11:19 +0800 Subject: [PATCH] common/Finisher: Using queue(list) instead queue(context*). Avoid call many time queue(context*). Signed-off-by: Jianpeng Ma --- src/os/bluestore/BlueStore.cc | 8 +++----- src/os/kstore/KStore.cc | 5 ++--- 2 files changed, 5 insertions(+), 8 deletions(-) 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); -- 2.47.3