Signed-off-by: Yehuda Sadeh <yehuda@redhat.com>
{
env = _env;
RGWCoroutine *op = *pos;
+ ldout(cct, 20) << *op << ": operate()" << dendl;
op->stack = this;
int r = op->operate();
if (r < 0) {
stack->set_wait_for_child(true);
}
+string RGWCoroutine::to_str()
+{
+ return typeid(*this).name();
+}
+
+ostream& operator<<(ostream& out, const RGWCoroutine& cr)
+{
+ out << "cr:s=" << (void *)cr.get_stack() << ":op=" << (void *)&cr << ":" << typeid(cr).name();
+ return out;
+}
+
bool RGWCoroutine::drain_children()
{
bool done = false;
}
void wait_for_child();
+
+ virtual string to_str();
+
+ RGWCoroutinesStack *get_stack() const {
+ return stack;
+ }
};
+ostream& operator<<(ostream& out, const RGWCoroutine& cr);
+
#define yield_until_true(x) \
do { \
do { \