FYI, I filed this under PROTON-222. We should (fingers crossed) get a fix
out in upcoming 0.4 release.

--Rafael

On Tue, Jan 29, 2013 at 7:43 AM, Rafael Schloming <r...@alum.mit.edu> wrote:

> There is definitely a bug here, I was able to reproduce it locally late
> yesterday. I'm still investigating, but I'll file a JIRA today and let you
> know what I learn.
>
> --Rafael
>
>
> On Mon, Jan 28, 2013 at 10:03 PM, Paul O'Fallon <p...@ofallonfamily.com>wrote:
>
>> I tried your suggestion and set an outgoing window of 1 and that did in
>> fact allow me to omit the stop() after every send().  It seems that
>> whatever you are suspecting is probably right!  :-)
>>
>> Thanks!
>>
>> - Paul
>>
>> On Mon, Jan 28, 2013 at 12:26 PM, Paul O'Fallon <p...@ofallonfamily.com
>> >wrote:
>>
>> > Thanks for the reply!  To your first question -- I haven't created a
>> > special test case for this, but it is in my code here:
>> >
>> >
>> >
>> https://github.com/pofallon/node-qpid/blob/master/src/messenger.cc#L168-L177
>> >
>> > (I'm in the early stages of writing node.js bindings to proton-c's
>> > Messenger API)
>> >
>> > This code calls put, start, send and stop for each message (and will
>> send
>> > the message).  If I comment out the "stop" on line 177 the messages are
>> not
>> > sent.  (To see how this is invoked via node.js, see:
>> > https://github.com/pofallon/node-qpid/blob/master/test/test.js#L18)
>> >
>> > To your second question, my end goal is "yes" to share it between
>> threads.
>> >  Today my "Messenger" javascript object uses two pn_messenger instances
>> --
>> > one to send and another to receive.  However, I'd like to collapse that
>> > into one instance for both sending and receiving (across multiple
>> threads).
>> >
>> > Thanks again!
>> >
>> > - Paul
>> >
>> > On Mon, Jan 28, 2013 at 6:32 AM, Rafael Schloming <r...@alum.mit.edu
>> >wrote:
>> >
>> >> On Fri, Jan 25, 2013 at 9:53 PM, Paul O'Fallon <p...@ofallonfamily.com
>> >> >wrote:
>> >>
>> >> > Hello!  I'm new to proton (and AMQP), and have some questions about
>> >> using
>> >> > the Messenger API in the C library to send messages to Windows Azure.
>> >>  I've
>> >> > noticed that it takes three steps before a message is actually sent
>> >> (i.e.
>> >> > before it is fetched when running the 'recv' command line example).
>>  I
>> >> call
>> >> > pn_messenger_put(), pn_messenger_send(), and then
>> pn_messenger_stop().
>> >>  My
>> >> > question is about the third call -- to pn_messenger_stop().  If I
>> omit
>> >> that
>> >> > and just call the first two, the message is not actually sent.
>> >> >
>> >> > My concern is whether calling stop() after every send will be a
>> problem
>> >> in
>> >> > the case where I want to use the same instance of messenger to call
>> >> recv()
>> >> > in a separate thread.  The API docs state "A messenger cannot send or
>> >> recv
>> >> > messages when it is stopped.".
>> >> >
>> >> > So, two questions:
>> >> >
>> >> > (1)  Is the need to call stop() after each send() expected behavior?
>> >> >
>> >>
>> >> I wouldn't expect that you need to call stop() after each send(),
>> however
>> >> you should call it before exiting the program. Do you have a code
>> fragment
>> >> you could post that reproduces the behaviour you're seeing? It sounds
>> like
>> >> it could be a bug, if it is what I suspect you could try working
>> around it
>> >> by setting a positive outgoing window.
>> >>
>> >>
>> >> > (2)  Will repeatedly calling stop() affect the recv() running in the
>> >> > separate thread?
>> >> >
>> >>
>> >> Are you sharing a single messenger between the two threads?
>> >>
>> >> --Rafael
>> >>
>> >
>> >
>>
>
>

Reply via email to