[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]
Re: [Libevent-users] Signals and priority queues
On Fri, Jan 13, 2012 at 7:47 AM, Ralph Castain <rhc@xxxxxxxxxxxx> 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 majordomo@xxxxxxxxxxxxx with
unsubscribe libevent-users in the body.