summaryrefslogtreecommitdiff
path: root/src/basic/prioq.h
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-01-26 11:27:18 +0100
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2019-01-26 12:42:46 +0100
commitef21b3b5bf824e652addf850bcfd9374c7b33ce8 (patch)
treef3eb16a2502e026aaa6e803d3a686f93c6a84f19 /src/basic/prioq.h
parentc482724aa5c5d0b1391fcf958a9a3ea6ce73a085 (diff)
downloadsystemd-ef21b3b5bf824e652addf850bcfd9374c7b33ce8.tar.gz
basic/prioq: add prioq_peek_item()
Diffstat (limited to 'src/basic/prioq.h')
-rw-r--r--src/basic/prioq.h8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/basic/prioq.h b/src/basic/prioq.h
index bba5c7caa4..1fb57bfa4c 100644
--- a/src/basic/prioq.h
+++ b/src/basic/prioq.h
@@ -19,8 +19,14 @@ int prioq_put(Prioq *q, void *data, unsigned *idx);
int prioq_remove(Prioq *q, void *data, unsigned *idx);
int prioq_reshuffle(Prioq *q, void *data, unsigned *idx);
-void *prioq_peek(Prioq *q) _pure_;
+void *prioq_peek_by_index(Prioq *q, unsigned idx) _pure_;
+static inline void *prioq_peek(Prioq *q) {
+ return prioq_peek_by_index(q, 0);
+}
void *prioq_pop(Prioq *q);
+#define PRIOQ_FOREACH_ITEM(q, p) \
+ for (unsigned _i = 0; (p = prioq_peek_by_index(q, _i)); _i++)
+
unsigned prioq_size(Prioq *q) _pure_;
bool prioq_isempty(Prioq *q) _pure_;