hi,you could do like this:set event type withoutÂEV_PERSISTENTÂ
void cb_func(int fd,short types,void* arg)
{
ÂÂ Â//do some work
ÂÂif (cond==false)
ÂÂ{
ÂÂ event_add(event);//will be triggered again.
ÂÂ}
}
2011/4/7 MichaÅ KrÃl
<mharnen@xxxxxxxxx>
Hi!
Thanks for your response. Unfortunately I want to invoke this event more then once, and stop invoking after particular condition occurs, so it's more like:
void cb_func(agrs){
ÂÂÂ //do some work
ÂÂÂÂ if(cond)
ÂÂÂÂÂÂÂÂ event_del(event);ÂÂÂ
}
2011/4/7 èæ
<jaxecn@xxxxxxxxx>
hi,maybe you callÂevent_new without the flag of EV_PERSISTENT,so when cb_func is triggered ,the event isÂautomaticÂdeleted by event_base_loop,it's seems there is two ev_del calls in  your example ,forgive my pool english..
2011/4/7 MichaÅ KrÃl
<mharnen@xxxxxxxxx>
Hi,
I was wondering if there is any way I can access event object within callback function in libevent2? I know I can put it in global variable, but I'll have a lot of events and I want to access particular one, so I want to avoid it.
I cannot pass it as an argument because I'll have pointer to event structure after setting callback in evet_new.
To be precise I want to do something like this:
int main(){
ÂÂÂÂ event = event_new(base, socket, flags, cb_func, args);
ÂÂÂÂ event_add(event);
}
void cb_func(args){
ÂÂÂÂ //do some work
ÂÂÂÂ event_del(event);Â <-- the problem is with getting event structure which invoked this callback }
Thanks in advance
Michal