--- libev/ev.c 2008/05/07 15:16:56 1.237 +++ libev/ev.c 2008/05/08 20:49:12 1.238 @@ -768,6 +768,7 @@ * the difference is about 5% with 50000+ watchers. */ #define USE_4HEAP !EV_MINIMAL +#define USE_4HEAP 1/* they do not work corretcly */ #if USE_4HEAP #define DHEAP 4 @@ -783,7 +784,7 @@ { int p = ((k - HEAP0 - 1) / DHEAP) + HEAP0; - if (p >= HEAP0 || heap [p]->at <= w->at) + if (p == k || heap [p]->at <= w->at) break; heap [k] = heap [p];