#include "cache.h" #include "prio-queue.h" static int intcmp(const void *va, const void *vb, void *data) { const int *a = va, *b = vb; return *a - *b; } static void show(int *v) { if (!v) printf("NULL\n"); else printf("%d\n", *v); free(v); } int main(int argc, char **argv) { struct prio_queue pq = { intcmp }; while (*++argv) { if (!strcmp(*argv, "get")) show(prio_queue_get(&pq)); else if (!strcmp(*argv, "dump")) { int *v; while ((v = prio_queue_get(&pq))) show(v); } else { int *v = malloc(sizeof(*v)); *v = atoi(*argv); prio_queue_put(&pq, v); } } return 0; }