summaryrefslogtreecommitdiff
path: root/src/common/Finisher.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/common/Finisher.cc')
-rw-r--r--src/common/Finisher.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/common/Finisher.cc b/src/common/Finisher.cc
index 72bfb6f9aa7..076da694414 100644
--- a/src/common/Finisher.cc
+++ b/src/common/Finisher.cc
@@ -34,6 +34,21 @@ void Finisher::wait_for_empty()
finisher_lock.Unlock();
}
+void Finisher::queue(Context *c, int r)
+{
+ finisher_lock.Lock();
+ ldout(cct, 10) << "queue " << c << " " << r << dendl;
+ if (r) {
+ finisher_queue_rval.push_back(pair<Context*, int>(c, r));
+ finisher_queue.push_back(NULL);
+ } else
+ finisher_queue.push_back(c);
+ finisher_cond.Signal();
+ finisher_lock.Unlock();
+ if (logger)
+ logger->inc(l_finisher_queue_len);
+}
+
void *Finisher::finisher_thread_entry()
{
finisher_lock.Lock();