This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
laforge gerrit-no-reply at lists.osmocom.orglaforge has uploaded this change for review. ( https://gerrit.osmocom.org/c/libosmocore/+/20295 ) Change subject: write_queue: Add osmo_wqueue_enqueue_quiet() ...................................................................... write_queue: Add osmo_wqueue_enqueue_quiet() Same as osmo_wqueue_enqueue() but without logging queue overruns. Change-Id: Ic082eb39795b08631284eeb421fef3c28f2e90dc --- M include/osmocom/core/write_queue.h M src/write_queue.c 2 files changed, 19 insertions(+), 5 deletions(-) git pull ssh://gerrit.osmocom.org:29418/libosmocore refs/changes/95/20295/1 diff --git a/include/osmocom/core/write_queue.h b/include/osmocom/core/write_queue.h index 071621d..75d5d8f 100644 --- a/include/osmocom/core/write_queue.h +++ b/include/osmocom/core/write_queue.h @@ -53,6 +53,7 @@ void osmo_wqueue_init(struct osmo_wqueue *queue, int max_length); void osmo_wqueue_clear(struct osmo_wqueue *queue); int osmo_wqueue_enqueue(struct osmo_wqueue *queue, struct msgb *data); +int osmo_wqueue_enqueue_quiet(struct osmo_wqueue *queue, struct msgb *data); int osmo_wqueue_bfd_cb(struct osmo_fd *fd, unsigned int what); /*! @} */ diff --git a/src/write_queue.c b/src/write_queue.c index 3399b0f..c7dedc4 100644 --- a/src/write_queue.c +++ b/src/write_queue.c @@ -100,6 +100,23 @@ INIT_LLIST_HEAD(&queue->msg_queue); } +/*! Enqueue a new \ref msgb into a write queue (without logging full queue events) + * \param[in] queue Write queue to be used + * \param[in] data to-be-enqueued message buffer + * \returns 0 on success; negative on error + */ +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); + queue->bfd.when |= OSMO_FD_WRITE; + + return 0; +} + /*! Enqueue a new \ref msgb into a write queue * \param[in] queue Write queue to be used * \param[in] data to-be-enqueued message buffer @@ -113,11 +130,7 @@ return -ENOSPC; } - ++queue->current_length; - msgb_enqueue(&queue->msg_queue, data); - queue->bfd.when |= OSMO_FD_WRITE; - - return 0; + return osmo_wqueue_enqueue_quiet(queue, data); } /*! Clear a \ref osmo_wqueue -- To view, visit https://gerrit.osmocom.org/c/libosmocore/+/20295 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: libosmocore Gerrit-Branch: master Gerrit-Change-Id: Ic082eb39795b08631284eeb421fef3c28f2e90dc Gerrit-Change-Number: 20295 Gerrit-PatchSet: 1 Gerrit-Owner: laforge <laforge at osmocom.org> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20200927/fbd357e9/attachment.htm>