diff options
Diffstat (limited to 'gnuradio-runtime/lib/msg_queue.cc')
-rw-r--r-- | gnuradio-runtime/lib/msg_queue.cc | 109 |
1 files changed, 51 insertions, 58 deletions
diff --git a/gnuradio-runtime/lib/msg_queue.cc b/gnuradio-runtime/lib/msg_queue.cc index 9961f76296..8ae4601309 100644 --- a/gnuradio-runtime/lib/msg_queue.cc +++ b/gnuradio-runtime/lib/msg_queue.cc @@ -29,62 +29,57 @@ namespace gr { - msg_queue::sptr - msg_queue::make(unsigned int limit) - { +msg_queue::sptr msg_queue::make(unsigned int limit) +{ return msg_queue::sptr(new msg_queue(limit)); - } +} - msg_queue::msg_queue(unsigned int limit) - : d_not_empty(), d_not_full(), - /*d_head(0), d_tail(0),*/ d_count(0), d_limit(limit) - { - } +msg_queue::msg_queue(unsigned int limit) + : d_not_empty(), + d_not_full(), + /*d_head(0), d_tail(0),*/ d_count(0), + d_limit(limit) +{ +} - msg_queue::~msg_queue() - { - flush (); - } +msg_queue::~msg_queue() { flush(); } - void - msg_queue::insert_tail(message::sptr msg) - { - if(msg->d_next) - throw std::invalid_argument("gr::msg_queue::insert_tail: msg already in queue"); +void msg_queue::insert_tail(message::sptr msg) +{ + if (msg->d_next) + throw std::invalid_argument("gr::msg_queue::insert_tail: msg already in queue"); gr::thread::scoped_lock guard(d_mutex); - while(full_p()) - d_not_full.wait(guard); - - if(d_tail == 0) { - d_tail = d_head = msg; - //msg->d_next = 0; - msg->d_next.reset(); - } - else { - d_tail->d_next = msg; - d_tail = msg; - //msg->d_next = 0; - msg->d_next.reset(); + while (full_p()) + d_not_full.wait(guard); + + if (d_tail == 0) { + d_tail = d_head = msg; + // msg->d_next = 0; + msg->d_next.reset(); + } else { + d_tail->d_next = msg; + d_tail = msg; + // msg->d_next = 0; + msg->d_next.reset(); } d_count++; d_not_empty.notify_one(); - } +} - message::sptr - msg_queue::delete_head() - { +message::sptr msg_queue::delete_head() +{ gr::thread::scoped_lock guard(d_mutex); message::sptr m; - while((m = d_head) == 0) - d_not_empty.wait(guard); + while ((m = d_head) == 0) + d_not_empty.wait(guard); d_head = m->d_next; - if(d_head == 0){ - //d_tail = 0; - d_tail.reset(); + if (d_head == 0) { + // d_tail = 0; + d_tail.reset(); } d_count--; @@ -92,39 +87,37 @@ namespace gr { m->d_next.reset(); d_not_full.notify_one(); return m; - } +} - message::sptr - msg_queue::delete_head_nowait() - { +message::sptr msg_queue::delete_head_nowait() +{ gr::thread::scoped_lock guard(d_mutex); message::sptr m; - if((m = d_head) == 0) { - //return 0; - return message::sptr(); + if ((m = d_head) == 0) { + // return 0; + return message::sptr(); } d_head = m->d_next; - if(d_head == 0) { - //d_tail = 0; - d_tail.reset(); + if (d_head == 0) { + // d_tail = 0; + d_tail.reset(); } d_count--; - //m->d_next = 0; + // m->d_next = 0; m->d_next.reset(); d_not_full.notify_one(); return m; - } +} - void - msg_queue::flush() - { +void msg_queue::flush() +{ message::sptr m; - while((m = delete_head_nowait ()) != 0) - ; - } + while ((m = delete_head_nowait()) != 0) + ; +} } /* namespace gr */ |