@蒋浩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
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to