summaryrefslogtreecommitdiff
path: root/cpp/src/IceStorm/Subscriber.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/IceStorm/Subscriber.cpp')
-rw-r--r--cpp/src/IceStorm/Subscriber.cpp17
1 files changed, 3 insertions, 14 deletions
diff --git a/cpp/src/IceStorm/Subscriber.cpp b/cpp/src/IceStorm/Subscriber.cpp
index fdf1385f5ef..1e93b7d250e 100644
--- a/cpp/src/IceStorm/Subscriber.cpp
+++ b/cpp/src/IceStorm/Subscriber.cpp
@@ -75,9 +75,7 @@ public:
if(state == Subscriber::QueueStateFlush)
{
- list<SubscriberPtr> l;
- l.push_back(_subscriber);
- _instance->subscriberPool()->flush(l);
+ _instance->subscriberPool()->flush(_subscriber);
}
return true;
}
@@ -454,7 +452,6 @@ SubscriberTwowayOrdered::flush()
void
SubscriberTwowayOrdered::response()
{
- EventPtr e;
{
IceUtil::Mutex::Lock sync(_mutex);
@@ -465,12 +462,8 @@ SubscriberTwowayOrdered::response()
_busy = false;
return;
}
-
- e = _events.front();
- _events.erase(_events.begin());
}
-
- _obj->ice_invoke_async(new TwowayOrderedInvokeI(this), e->op, e->mode, e->data, e->context);
+ _instance->subscriberPool()->flush(this);
}
namespace
@@ -614,7 +607,6 @@ SubscriberLink::flush()
void
SubscriberLink::response()
{
- EventSeq v;
{
IceUtil::Mutex::Lock sync(_mutex);
@@ -625,11 +617,8 @@ SubscriberLink::response()
_busy = false;
return;
}
-
- v.swap(_events);
}
-
- _obj->forward_async(new Topiclink_forwardI(this), v);
+ _instance->subscriberPool()->flush(this);
}
SubscriberPtr