[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.