From: Sage Weil Date: Wed, 2 Jul 2014 04:49:53 +0000 (-0700) Subject: common/AsyncReserver: add dump() X-Git-Tag: v0.84~149^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=6483710613e4ff3c08b0df67b013b25dd0f19825;p=ceph.git common/AsyncReserver: add dump() Signed-off-by: Sage Weil --- diff --git a/src/common/AsyncReserver.h b/src/common/AsyncReserver.h index fa49cfab8b4..467e2570460 100644 --- a/src/common/AsyncReserver.h +++ b/src/common/AsyncReserver.h @@ -21,6 +21,7 @@ #include "common/Mutex.h" #include "common/Finisher.h" +#include "common/Formatter.h" /** * Manages a configurable number of asyncronous reservations. @@ -79,6 +80,33 @@ public: do_queues(); } + void dump(Formatter *f) { + Mutex::Locker l(lock); + f->dump_unsigned("max_allowed", max_allowed); + f->dump_unsigned("min_priority", min_priority); + f->open_array_section("queues"); + for (typename map > > ::const_iterator p = + queues.begin(); p != queues.end(); ++p) { + f->open_object_section("queue"); + f->dump_unsigned("priority", p->first); + f->open_array_section("items"); + for (typename list >::const_iterator q = + p->second.begin(); q != p->second.end(); ++q) { + f->dump_stream("item") << q->first; + } + f->close_section(); + f->close_section(); + } + f->close_section(); + f->open_array_section("in_progress"); + for (typename set::const_iterator p = in_progress.begin(); + p != in_progress.end(); + ++p) { + f->dump_stream("item") << *p; + } + f->close_section(); + } + /** * Requests a reservation *