[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: [Libevent-users] event_add while running main loop



hi and thanks for the reply!

does it work for you with or without using event_active?


On Tue, 19 Nov 2013 22:38:39 -0800, Himanshu S wrote:
> Hi, 
> I have been using libevent for exactly same purpose as you have described and 
> works fine. Once I detect the connection has gone down, ( I don't use timer 
> though, just use the read callback and read fails), I don't connect 
> immediately. I invoke a timer of 1 sec or so and then try connect. Do you 
> check the return code for connect to make sure it is successful? Maybe your 
> connect is actually failing since TCP connection is not fully closed yet. 
> 
> 
> On Tue, Nov 5, 2013 at 10:59 PM, Goetz T. Fischer <g.fischer@xxxxxxxxxxxxx> 
> wrote:
>> good morning/evening/afternoon, whatever matches your timezone :-)
>> 
>> i've been scratching my head over one issue for some time and couldn't find
>> anything helpful on the net either so here's my last resort i hope.
>> 
>> i have a unix/c program using, surprise, libevent. it runs 3 events, a tcp
>> client, a tcp listener and a timer. everything works fine. the problem now is
>> that the server to which i connect the tcp client event drops out 
>> occasionally.
>> because of that i added the timer event to do checks. that works fine, too.
>> now if i notice that the server is down i want to reconnect without killing 
>> the
>> event loop so that the listener is not affected. what i do in case of a
>> disconnect is close the socket, event_del, event_free. after that i connect 
>> the
>> socket again and then add the event the same way as i do when the programs
>> starts:
>> evutil_make_socket_nonblocking(so);
>> client = event_new(base, so, EV_READ|EV_PERSIST, incoming, (void *)base);
>> event_add(client, NULL);
>> 
>> at this point nothing comes in at all so i tried event_active(client, NULL,
>> NULL) which only works for a second or so meaning i get 3 lines and nothing
>> after that.
>> now the big question is is it possible to add an event while the main loop is
>> running? and if so what did i miss?
>> 
>> 
>> any sort of hints would be very much appreciated :-)
>> 
>> 
>> --
>> ah-consulting.net
>> Götz T. Fischer CertIT&Comp
>> Senior Consultant
>> Phone: +49(0)7225/98 98 79
>> eMail: g.fischer@xxxxxxxxxxxxxxxxx
>> http://www.ah-consulting.net
>> http://www.ah-webhosting.com
>> ***********************************************************************
>> To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
>> unsubscribe libevent-users    in the body.
> 

--
ah-consulting.net
Götz T. Fischer CertIT&Comp
Senior Consultant
Phone: +49(0)7225/98 98 79
eMail: g.fischer@xxxxxxxxxxxxxxxxx
http://www.ah-consulting.net
http://www.ah-webhosting.com
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.