libev release candidate

Brandon Black blblack at
Tue May 8 17:33:43 CEST 2012

On Tue, May 8, 2012 at 9:47 AM, Marc Lehmann <schmorp at> wrote:
>        if (j++ & 1)
>          {
>            assert (("libev: io watcher list contains a loop", w != w2));
>            w2 = w2->next;
>          }
> And see if that makes it go away? (I never implemented this particular
> algorithm before :)

Still the same assert failure with that chunk of code.  I blindly
tried a few other variants on the theme as well.  If I move the assert
after the assignment, e.g.:

    if (j++ & 1)
        w2 = w2->next;
        assert (("libev: io watcher list contains a loop", w != w2));

Then it works.  If I change j++ to ++j in the above, it still works.

Other obvious variations all produce assert failures (moving assert
back above the assignment, or outside of the if-branch completely).

-- Brandon

More information about the libev mailing list