summaryrefslogtreecommitdiff
path: root/qpid/extras/dispatch/src
diff options
context:
space:
mode:
Diffstat (limited to 'qpid/extras/dispatch/src')
-rw-r--r--qpid/extras/dispatch/src/container.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/qpid/extras/dispatch/src/container.c b/qpid/extras/dispatch/src/container.c
index e65d0c4b63..ff628aa9b1 100644
--- a/qpid/extras/dispatch/src/container.c
+++ b/qpid/extras/dispatch/src/container.c
@@ -306,14 +306,15 @@ static int process_handler(dx_container_t *container, void* unused, pn_connectio
delivery = pn_work_head(conn);
while (delivery) {
- if (pn_delivery_readable(delivery))
+ if (pn_delivery_readable(delivery))
process_receive(delivery);
else if (pn_delivery_writable(delivery))
do_send(delivery);
- if (pn_delivery_updated(delivery))
+ if (pn_delivery_updated(delivery)) {
do_updated(delivery);
-
+ pn_delivery_clear(delivery);
+ }
delivery = pn_work_next(delivery);
event_count++;
}