My original design was misguided. Of course calling  event_base_dispatch()
means giving the running thread to libevent's event_base. I am still
learning how it works...
On Thu, Nov 27, 2014 at 10:32 AM, Azat Khuzhin <[email protected]> wrote:

>
> On 27 Nov 2014 04:29, "Fongang Dassi Jean" <[email protected]> wrote:
> >
> > Hello,
> >
> > at http://www.wangafu.net/~nickm/libevent-book/Ref3_eventloop.html,
> there is a note that
> >
> > "Ordinarily, the loop will exit as soon as it has no pending or active
> events. You can override this behavior by passing the
> EVLOOP_NO_EXIT_ON_EMPTY flag---for example, if you’re going to be adding
> events from some other thread."
> >
> > This seems to imply that it is only recommended to add events if another
> thread is used?
>
> No, you could add events from callbacks too.
>
Thanks for pointing this out, it helped me understand how it all works. In
the program bellow, the callbacks on the event attached to the pipe(g->
fifo_event) are used to insert additional requests into to event_base.

> >
> > This program:
> https://raw.githubusercontent.com/bagder/curl/master/docs/examples/hiperfifo.c
>  manages
> to register additional events after dispatch is called, but seems to rely
> on the existence of a persisting event.
>
> It has one timer.
>
I meant the fifo_event on the pipe seems to prevent the event_base from
completing and exiting.

> >
> > Is that the only way? What is the best way?
> >
> > Thanks in advance
>

Reply via email to