From: Dongsheng Yang Date: Mon, 15 Oct 2018 05:06:29 +0000 (-0400) Subject: TokenBucketThrottle: use reference to m_blockers.front() and then update it X-Git-Tag: v14.1.0~1161^2 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=9a2b1f26237f05a6fee4bf95ba1cd92f1b88be92;p=ceph.git TokenBucketThrottle: use reference to m_blockers.front() and then update it As we need to update the blocker below, then we need to use reference to front object, rather than a new object of blocker. Fixes: http://tracker.ceph.com/issues/36475 Signed-off-by: Dongsheng Yang --- diff --git a/src/common/Throttle.cc b/src/common/Throttle.cc index 877ace344f1d..059248f3e71f 100644 --- a/src/common/Throttle.cc +++ b/src/common/Throttle.cc @@ -741,7 +741,7 @@ void TokenBucketThrottle::add_tokens() { // check the m_blockers from head to tail, if blocker can get // enough tokens, let it go. while (!m_blockers.empty()) { - Blocker blocker = m_blockers.front(); + Blocker &blocker = m_blockers.front(); uint64_t got = m_throttle.get(blocker.tokens_requested); if (got == blocker.tokens_requested) { // got enough tokens for front.