You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by rh...@apache.org on 2012/06/06 02:11:43 UTC
svn commit: r1346680 - in /qpid/proton/trunk/proton-c:
include/proton/engine.h src/engine/engine.c
Author: rhs
Date: Wed Jun 6 00:11:42 2012
New Revision: 1346680
URL: http://svn.apache.org/viewvc?rev=1346680&view=rev
Log:
fixed drain API
Modified:
qpid/proton/trunk/proton-c/include/proton/engine.h
qpid/proton/trunk/proton-c/src/engine/engine.c
Modified: qpid/proton/trunk/proton-c/include/proton/engine.h
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/include/proton/engine.h?rev=1346680&r1=1346679&r2=1346680&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/include/proton/engine.h (original)
+++ qpid/proton/trunk/proton-c/include/proton/engine.h Wed Jun 6 00:11:42 2012
@@ -268,8 +268,8 @@ void pn_drained(pn_link_t *sender);
//void pn_abort(pn_sender_t *sender);
// receiver
-void pn_flow(pn_link_t *receiver, int credits);
-void pn_drain(pn_link_t *receiver);
+void pn_flow(pn_link_t *receiver, int credit);
+void pn_drain(pn_link_t *receiver, int credit);
ssize_t pn_recv(pn_link_t *receiver, char *bytes, size_t n);
// delivery
Modified: qpid/proton/trunk/proton-c/src/engine/engine.c
URL: http://svn.apache.org/viewvc/qpid/proton/trunk/proton-c/src/engine/engine.c?rev=1346680&r1=1346679&r2=1346680&view=diff
==============================================================================
--- qpid/proton/trunk/proton-c/src/engine/engine.c (original)
+++ qpid/proton/trunk/proton-c/src/engine/engine.c Wed Jun 6 00:11:42 2012
@@ -1810,15 +1810,19 @@ ssize_t pn_recv(pn_link_t *receiver, cha
void pn_flow(pn_link_t *receiver, int credit)
{
- if (!receiver) return;
- receiver->credit += credit;
- pn_modified(receiver->session->connection, &receiver->endpoint);
+ if (receiver && pn_is_receiver(receiver)) {
+ receiver->credit += credit;
+ receiver->drain = false;
+ pn_modified(receiver->session->connection, &receiver->endpoint);
+ }
}
-void pn_drain(pn_link_t *receiver)
+void pn_drain(pn_link_t *receiver, int credit)
{
- if (receiver && pn_is_receiver(receiver))
+ if (receiver && pn_is_receiver(receiver)) {
+ pn_flow(receiver, credit);
receiver->drain = true;
+ }
}
time_t pn_tick(pn_transport_t *engine, time_t now)
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org