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

Re: [Libevent-users] Bufferevent timeouts unclear.



On Mon, Feb 8, 2010 at 4:10 PM, Jj Jack <jjjack94@xxxxxxxxx> wrote:
> After some digging, I've managed to figure it out.
>
> The order of calls makes all the difference, so, it would be nice if you explicitly mentioned it in your book, Nick (great resource, btw!).
>
> This works:
>
>
>        bufferevent_setcb(bev, readcb, NULL, eventcb, NULL);
>
>        if (bufferevent_socket_connect(bev,(struct sockaddr *)&sin, sizeof(sin)) < 0)
>        {
>        bufferevent_free(bev);
>        }
>
>        bufferevent_setwatermark(bev, EV_READ, X, 0);
>        bufferevent_enable(bev, EV_READ|EV_WRITE);
>        bufferevent_set_timeouts(bev, &tv, &tv);
>
> But, setting the watermarks, or timeouts before the socket_connect doesn't, which, is quite confusing, as you can add data to the buffer before adding the connection, this makes it quite confusing, imo, as it seems arbitrary.
>
> Regardless, I hope this'll help someone out.
>

Actually, this is a bug IMO.  You ought to be allowed to set the
watermark and timeouts before the socket_connect and have it work
fine.  If you can't, that's a problem in the code.

If you get a chance, do you think you'd be able to
   a) reproduce this under the version of Libevent from the git
repository [1], and if the problem is still there,
   b) write a unit test for it [2], so we can start to track down what
the problem is?

If you don't have time to do those, it would be great if you could
file a bug [3] so we don't forget about this.

[1] The official git repository is at
git://levent.git.sourceforge.net/gitroot/libevent
[2] The unit tests for bufferevents are in the source at
test/regress_bufferevent.c ; the ones later in the file are written in
a better style.
[3] The trackers are here: https://sourceforge.net/tracker/?group_id=50884

Thanks again,
-- 
Nick
***********************************************************************
To unsubscribe, send an e-mail to majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users    in the body.