Understood, the way i was doing it before behaved in the latter method
you described. I was just trying to get it to work in another way with
only one dispatcher.

But everything should be alright doing it the way i have been where
the dispatcher is in the same thread as event structures are setup in.

-brian



On Fri, Mar 6, 2009 at 11:59 AM, Matt Pearson
<404emailnotfo...@gmail.com> wrote:
> On Fri, Mar 6, 2009 at 09:16, Brian <ping...@gmail.com> wrote:
>> Thanks Guillaume for the feedback. Unfortunately malloc/calloc method
>> didn't work for me. I think I will just go back to how it was. Does
>> anyone know if there is an inherent flaw, perhaps, with doing the
>> event_init()/event_dispatch() within a posix thread?
>>
>> -brian
>
> There are two things terribly wrong with what you're trying to do
> here. First, you're having libevent access freed memory by giving it
> pointers to freed stack variables as Guillaume said. The event struct
> is added directly to libevent's internal structures; it is not copied
> in any way. You *must* ensure that event structs do not go out of
> scope when they're still being used.
>
> Second, you're calling event_add from one thread while event_dispatch
> is running in another. Things may have changed, but last I checked
> libevent was not thread-safe in this manner and only supported having
> multiple event queues, one for each thread, with add/del being done
> only from the same thread event_base_dispatch was running in.
>
> Matt
>
_______________________________________________
Libevent-users mailing list
Libevent-users@monkey.org
http://monkeymail.org/mailman/listinfo/libevent-users

Reply via email to