@蒋浩It doesn't matter weather I'll add or delete event, but I need event struct for both operations.
@song Yes I think it'll do what I want. I thought that maybe there is a bit simpler method, but this is solution is good enough - thanks a lot! Michal 2011/4/7 蒋浩 <jax...@gmail.com> > 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 <mhar...@gmail.com> > >> 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 蒋浩 <jax...@gmail.com> >> >>> 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 <mhar...@gmail.com> >>> >>>> 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 >>>> >>>> >>>> >>>> >>> >> >