On Wed, Jun 17, 2020 at 2:19 PM Adrian Florea <[email protected]> wrote:

> Hi, thanks.
> I am using the proactor.
> I need a way to clearly send a message out.
> My program has a loop and everytime it loops, I tried this:
>
> - call pn_proactor_wait  --> this ends up blocking my loop, which is not
> good.
>
> - call pn_proactor_get -- this does not block and returns no event for a
> long while, when suddenly it gets a PN_TRANSPORT event and all my messages
> are really sent out.
>

Are you calling pn_proactor_done() after processing the batch of events
from pn_proactor_get()?


>
> Adrian
>
> On Wed, Jun 17, 2020, 12:36 PM Ted Ross <[email protected]> wrote:
>
> > Hi Adrian,
> >
> > What is your program doing after it calls pn_message_send?  That function
> > queues the message for delivery but the delivery isn't actually
> transferred
> > until the application yields the control back to the Proton reactor (via
> > pn_proactor_wait).  If the application is doing other processing or
> waiting
> > on a condition or mutex, the delivery won't go out the door immediately.
> >
> > -Ted
> >
> > On Wed, Jun 17, 2020 at 1:11 PM Adrian Florea <[email protected]>
> > wrote:
> >
> > > Hi,
> > >
> > > Any idea is welcome on this one.
> > >
> > > I am trying to send messages (via a sender link) at various moments in
> > the
> > > life of a program. I am using pn_message_send.
> > >
> > > I have set the outgoing window size to 1, on the session.
> > >
> > > The current behavior is:
> > >
> > > 1. pn_message_send completes OK
> > > 2. nothing is actually sent
> > > 3. after a while (I guess this is where I miss something) I see that
> the
> > > proactor gets an event of type PN_TRANSPORT and I can see all messages
> > > being really sent.
> > >
> > > Is there a way to achieve a "send immediate" behavior ?
> > >
> > > When a message send is invoked, I need it to really go out.
> > >
> > > many thanks for pointing me in the right direction,
> > >
> > > Adrian
> > >
> >
>

Reply via email to