Change in libosmocore[master]: write_queue: Add osmo_wqueue_enqueue_quiet()

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.org
Sun Sep 27 09:13:44 UTC 2020


laforge 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>


More information about the gerrit-log mailing list