diff options
author | Harald Welte <laforge@osmocom.org> | 2020-09-27 16:39:01 +0200 |
---|---|---|
committer | laforge <laforge@osmocom.org> | 2020-09-29 16:30:56 +0000 |
commit | f44937834f177bfec96fd84b07751e30553feb27 (patch) | |
tree | d38e7407e204c02b8835a5575d194f092f092b70 /src/write_queue.c | |
parent | 66138ccab5bd6a830efbb2379ff229f4005e3b62 (diff) |
write_queue: use msgb_{en,de}queue_count()
The write_queue.c implemetation predates the msgb_*queue_count()
functions for maintaining a count alongside witha msgb queue. Let's
migrate over to those implementations.
Change-Id: I0ebd42a50f239dd7e9f663ce4c42824a5c1b3ce7
Diffstat (limited to 'src/write_queue.c')
-rw-r--r-- | src/write_queue.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/src/write_queue.c b/src/write_queue.c index c7dedc47..422eda44 100644 --- a/src/write_queue.c +++ b/src/write_queue.c @@ -64,11 +64,9 @@ int osmo_wqueue_bfd_cb(struct osmo_fd *fd, unsigned int what) fd->when &= ~OSMO_FD_WRITE; + msg = msgb_dequeue_count(&queue->msg_queue, &queue->current_length); /* the queue might have been emptied */ - if (!llist_empty(&queue->msg_queue)) { - --queue->current_length; - - msg = msgb_dequeue(&queue->msg_queue); + if (msg) { rc = queue->write_cb(fd, msg); msgb_free(msg); @@ -110,8 +108,7 @@ int osmo_wqueue_enqueue_quiet(struct osmo_wqueue *queue, struct msgb *data) if (queue->current_length >= queue->max_length) return -ENOSPC; - ++queue->current_length; - msgb_enqueue(&queue->msg_queue, data); + msgb_enqueue_count(&queue->msg_queue, data, &queue->current_length); queue->bfd.when |= OSMO_FD_WRITE; return 0; |