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.

Adrian

On Wed, Jun 17, 2020, 12:36 PM Ted Ross <tr...@redhat.com> 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 <florea....@gmail.com>
> 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