Fix timers
This commit is contained in:
parent
125521ddc1
commit
a1c9018847
18
common.c
18
common.c
|
@ -893,19 +893,19 @@ poller_timers_heapify_down (struct poller_timers *self, size_t index)
|
|||
info_t *left = self->info + 2 * index + 1;
|
||||
info_t *right = self->info + 2 * index + 2;
|
||||
|
||||
info_t *largest = parent;
|
||||
if (left < end && left->when > largest->when)
|
||||
largest = left;
|
||||
if (right < end && right->when > largest->when)
|
||||
largest = right;
|
||||
if (parent == largest)
|
||||
info_t *lowest = parent;
|
||||
if (left < end && left->when < lowest->when)
|
||||
lowest = left;
|
||||
if (right < end && right->when < lowest->when)
|
||||
lowest = right;
|
||||
if (parent == lowest)
|
||||
break;
|
||||
|
||||
info_t tmp = *parent;
|
||||
*parent = *largest;
|
||||
*largest = tmp;
|
||||
*parent = *lowest;
|
||||
*lowest = tmp;
|
||||
|
||||
index = largest - self->info;
|
||||
index = lowest - self->info;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue