On Fri, Jan 13, 2012 at 7:47 AM, Ralph Castain <[email protected]> wrote:
> I've been digging further into this, and I believe I have much of it resolved
> now. However, I have encountered a problem that appears to be something in
> libevent itself.
>
> I configured libevent with debug enabled, and turned it on at execution - and
> was barraged by:
>
> [warn] select: Invalid argument
>
> Digging further into the reason, I found that the message comes from the
> following code in select_dispatch (file select.c):
Weird that you're using select.c; nearly any other backend would be faster.
>
> res = select(nfds, sop->event_readset_out,
> sop->event_writeset_out, NULL, tv);
>
> EVBASE_ACQUIRE_LOCK(base, th_base_lock);
>
> check_selectop(sop);
>
> if (res == -1) {
> if (errno != EINTR) {
> event_warn("select");
> return (-1);
> }
>
> return (0);
> }
>
> The timeout value being supplied to select_dispatch is being corrupted after
> the first time thru the routine - it comes into the routine the first time as
> {0, 0}, but is an illegal value thereafter. Resetting the timeout to the
> original value resolves the problem.
What kind of illegal value are you seeing, coming from where? Are you
using the common_timeout code? What are you doing to "reset the
timeout" ?
--
Nick
***********************************************************************
To unsubscribe, send an e-mail to [email protected] with
unsubscribe libevent-users in the body.