ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/libev/ev.c
(Generate patch)

Comparing libev/ev.c (file contents):
Revision 1.237 by root, Wed May 7 15:16:56 2008 UTC vs.
Revision 1.238 by root, Thu May 8 20:49:12 2008 UTC

766 * a small-code-size 2-heap one and a ~1.5kb larger 4-heap 766 * a small-code-size 2-heap one and a ~1.5kb larger 4-heap
767 * which is more cache-efficient. 767 * which is more cache-efficient.
768 * the difference is about 5% with 50000+ watchers. 768 * the difference is about 5% with 50000+ watchers.
769 */ 769 */
770#define USE_4HEAP !EV_MINIMAL 770#define USE_4HEAP !EV_MINIMAL
771#define USE_4HEAP 1/* they do not work corretcly */
771#if USE_4HEAP 772#if USE_4HEAP
772 773
773#define DHEAP 4 774#define DHEAP 4
774#define HEAP0 (DHEAP - 1) /* index of first element in heap */ 775#define HEAP0 (DHEAP - 1) /* index of first element in heap */
775 776
781 782
782 for (;;) 783 for (;;)
783 { 784 {
784 int p = ((k - HEAP0 - 1) / DHEAP) + HEAP0; 785 int p = ((k - HEAP0 - 1) / DHEAP) + HEAP0;
785 786
786 if (p >= HEAP0 || heap [p]->at <= w->at) 787 if (p == k || heap [p]->at <= w->at)
787 break; 788 break;
788 789
789 heap [k] = heap [p]; 790 heap [k] = heap [p];
790 ev_active (heap [k]) = k; 791 ev_active (heap [k]) = k;
791 k = p; 792 k = p;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines