forked from Mirror/frr
lib: add removal by item to pqueue
Signed-off-by: Quentin Young <qlyoung@cumulusnetworks.com>
This commit is contained in:
parent
b43d5ea330
commit
6cbc63316b
|
@ -188,3 +188,11 @@ pqueue_remove_at (int index, struct pqueue *queue)
|
|||
trickle_down (index, queue);
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
pqueue_remove (void *data, struct pqueue *queue)
|
||||
{
|
||||
for (int i = 0; i < queue->size; i++)
|
||||
if (queue->array[i] == data)
|
||||
pqueue_remove_at (i, queue);
|
||||
}
|
||||
|
|
|
@ -39,6 +39,7 @@ extern void pqueue_delete (struct pqueue *queue);
|
|||
extern void pqueue_enqueue (void *data, struct pqueue *queue);
|
||||
extern void *pqueue_dequeue (struct pqueue *queue);
|
||||
extern void pqueue_remove_at (int index, struct pqueue *queue);
|
||||
extern void pqueue_remove (void *data, struct pqueue *queue);
|
||||
|
||||
extern void trickle_down (int index, struct pqueue *queue);
|
||||
extern void trickle_up (int index, struct pqueue *queue);
|
||||
|
|
Loading…
Reference in a new issue