diff options
Diffstat (limited to 'qpid/extras/dispatch/src')
| -rw-r--r-- | qpid/extras/dispatch/src/container.c | 7 |
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++; } |
