projects
/
debian
/
gnuradio
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge commit 'v3.3.0' into upstream
[debian/gnuradio]
/
gnuradio-core
/
src
/
lib
/
runtime
/
gr_msg_queue.cc
diff --git
a/gnuradio-core/src/lib/runtime/gr_msg_queue.cc
b/gnuradio-core/src/lib/runtime/gr_msg_queue.cc
index 922eeda03cff5aa80a0e0c5d6f41c1be2c992ad1..3097acc9eecd96ccce1cf1ede1fd0e51112174bb 100644
(file)
--- a/
gnuradio-core/src/lib/runtime/gr_msg_queue.cc
+++ b/
gnuradio-core/src/lib/runtime/gr_msg_queue.cc
@@
-1,6
+1,6
@@
/* -*- c++ -*- */
/*
/* -*- c++ -*- */
/*
- * Copyright 2005 Free Software Foundation, Inc.
+ * Copyright 2005
,2009
Free Software Foundation, Inc.
*
* This file is part of GNU Radio
*
*
* This file is part of GNU Radio
*
@@
-26,16
+26,14
@@
#include <gr_msg_queue.h>
#include <stdexcept>
#include <gr_msg_queue.h>
#include <stdexcept>
-
gr_msg_queue_sptr
gr_make_msg_queue(unsigned int limit)
{
return gr_msg_queue_sptr (new gr_msg_queue(limit));
}
gr_msg_queue_sptr
gr_make_msg_queue(unsigned int limit)
{
return gr_msg_queue_sptr (new gr_msg_queue(limit));
}
-
gr_msg_queue::gr_msg_queue(unsigned int limit)
gr_msg_queue::gr_msg_queue(unsigned int limit)
- : d_not_empty(
&d_mutex), d_not_full(&d_mutex
),
+ : d_not_empty(
), d_not_full(
),
/*d_head(0), d_tail(0),*/ d_count(0), d_limit(limit)
{
}
/*d_head(0), d_tail(0),*/ d_count(0), d_limit(limit)
{
}
@@
-51,10
+49,10
@@
gr_msg_queue::insert_tail(gr_message_sptr msg)
if (msg->d_next)
throw std::invalid_argument("gr_msg_queue::insert_tail: msg already in queue");
if (msg->d_next)
throw std::invalid_argument("gr_msg_queue::insert_tail: msg already in queue");
-
omni_mutex_lock l
(d_mutex);
+
gruel::scoped_lock guard
(d_mutex);
while (full_p())
while (full_p())
- d_not_full.wait();
+ d_not_full.wait(
guard
);
if (d_tail == 0){
d_tail = d_head = msg;
if (d_tail == 0){
d_tail = d_head = msg;
@@
-68,17
+66,17
@@
gr_msg_queue::insert_tail(gr_message_sptr msg)
msg->d_next.reset();
}
d_count++;
msg->d_next.reset();
}
d_count++;
- d_not_empty.
signal
();
+ d_not_empty.
notify_one
();
}
gr_message_sptr
gr_msg_queue::delete_head()
{
}
gr_message_sptr
gr_msg_queue::delete_head()
{
-
omni_mutex_lock l
(d_mutex);
- gr_message_sptr
m;
+
gruel::scoped_lock guard
(d_mutex);
+ gr_message_sptr m;
while ((m = d_head) == 0)
while ((m = d_head) == 0)
- d_not_empty.wait();
+ d_not_empty.wait(
guard
);
d_head = m->d_next;
if (d_head == 0){
d_head = m->d_next;
if (d_head == 0){
@@
-89,15
+87,15
@@
gr_msg_queue::delete_head()
d_count--;
// m->d_next = 0;
m->d_next.reset();
d_count--;
// m->d_next = 0;
m->d_next.reset();
- d_not_full.
signal
();
+ d_not_full.
notify_one
();
return m;
}
gr_message_sptr
gr_msg_queue::delete_head_nowait()
{
return m;
}
gr_message_sptr
gr_msg_queue::delete_head_nowait()
{
-
omni_mutex_lock l
(d_mutex);
- gr_message_sptr
m;
+
gruel::scoped_lock guard
(d_mutex);
+ gr_message_sptr m;
if ((m = d_head) == 0){
//return 0;
if ((m = d_head) == 0){
//return 0;
@@
-113,7
+111,7
@@
gr_msg_queue::delete_head_nowait()
d_count--;
//m->d_next = 0;
m->d_next.reset();
d_count--;
//m->d_next = 0;
m->d_next.reset();
- d_not_full.
signal
();
+ d_not_full.
notify_one
();
return m;
}
return m;
}