summaryrefslogtreecommitdiff
path: root/gnuradio-runtime/lib/messages/msg_queue.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gnuradio-runtime/lib/messages/msg_queue.cc')
-rw-r--r--gnuradio-runtime/lib/messages/msg_queue.cc95
1 files changed, 42 insertions, 53 deletions
diff --git a/gnuradio-runtime/lib/messages/msg_queue.cc b/gnuradio-runtime/lib/messages/msg_queue.cc
index 321b229358..6476ddc4ee 100644
--- a/gnuradio-runtime/lib/messages/msg_queue.cc
+++ b/gnuradio-runtime/lib/messages/msg_queue.cc
@@ -28,76 +28,65 @@
#include <stdexcept>
namespace gr {
- namespace messages {
-
- msg_queue_sptr
- make_msg_queue(unsigned int limit)
- {
- return msg_queue_sptr(new msg_queue(limit));
- }
-
- msg_queue::msg_queue(unsigned int limit)
- : d_limit(limit)
- {
- }
-
- msg_queue::~msg_queue()
- {
- flush();
- }
-
- void
- msg_queue::insert_tail(pmt::pmt_t msg)
- {
- gr::thread::scoped_lock guard(d_mutex);
-
- while(full_p())
+namespace messages {
+
+msg_queue_sptr make_msg_queue(unsigned int limit)
+{
+ return msg_queue_sptr(new msg_queue(limit));
+}
+
+msg_queue::msg_queue(unsigned int limit) : d_limit(limit) {}
+
+msg_queue::~msg_queue() { flush(); }
+
+void msg_queue::insert_tail(pmt::pmt_t msg)
+{
+ gr::thread::scoped_lock guard(d_mutex);
+
+ while (full_p())
d_not_full.wait(guard);
- d_msgs.push_back(msg);
- d_not_empty.notify_one();
- }
+ d_msgs.push_back(msg);
+ d_not_empty.notify_one();
+}
- pmt::pmt_t
- msg_queue::delete_head()
- {
- gr::thread::scoped_lock guard(d_mutex);
+pmt::pmt_t msg_queue::delete_head()
+{
+ gr::thread::scoped_lock guard(d_mutex);
- while(empty_p())
+ while (empty_p())
d_not_empty.wait(guard);
- pmt::pmt_t m(d_msgs.front());
- d_msgs.pop_front();
+ pmt::pmt_t m(d_msgs.front());
+ d_msgs.pop_front();
- if(d_limit > 0) // Unlimited length queues never block on write
+ if (d_limit > 0) // Unlimited length queues never block on write
d_not_full.notify_one();
- return m;
- }
+ return m;
+}
- pmt::pmt_t
- msg_queue::delete_head_nowait()
- {
- gr::thread::scoped_lock guard(d_mutex);
+pmt::pmt_t msg_queue::delete_head_nowait()
+{
+ gr::thread::scoped_lock guard(d_mutex);
- if(empty_p())
+ if (empty_p())
return pmt::pmt_t();
- pmt::pmt_t m(d_msgs.front());
- d_msgs.pop_front();
+ pmt::pmt_t m(d_msgs.front());
+ d_msgs.pop_front();
- if(d_limit > 0) // Unlimited length queues never block on write
+ if (d_limit > 0) // Unlimited length queues never block on write
d_not_full.notify_one();
- return m;
- }
+ return m;
+}
- void
- msg_queue::flush()
- {
- while(delete_head_nowait() != pmt::pmt_t())
+void msg_queue::flush()
+{
+ while (delete_head_nowait() != pmt::pmt_t())
;
- }
+}
- } /* namespace messages */
+} /* namespace messages */
} /* namespace gr */