ev.c fix

Auxten wpc auxtenwpc at gmail.com
Wed Sep 7 07:04:23 CEST 2011


libev-4.04 may have a infi loop at ev.c line 1020,1019

          for (w = (ev_io *)anfd->head; w; w = (ev_io *)((WL)w)->next)
>               anfd->events |= (unsigned char)w->events;
>

as my trace there a possiblity "w == (ev_io *)((WL)w)->next", the next point
to itself
this cause one of my threads infi loop here, so the simple fix is

diff -r libev-4.04/ev.c libev-4.04-fixed/ev.c

> 1020c1020,1024
> <             anfd->events |= (unsigned char)w->events;
> ---
> >             {
> >               anfd->events |= (unsigned char)w->events;
> >               if (w == (ev_io *)((WL)w)->next)
> >                 break;
> >             }
>


-- 
----------------------------------
Auxten *StarDust* blog.auxten.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.schmorp.de/pipermail/libev/attachments/20110907/87d15412/attachment.htm>


More information about the libev mailing list