summaryrefslogtreecommitdiffstats
path: root/host/lib/usrp
diff options
context:
space:
mode:
authorJosh Blum <josh@joshknows.com>2011-04-22 17:02:07 -0700
committerJosh Blum <josh@joshknows.com>2011-04-22 17:02:07 -0700
commit627075e60e0b893a412e849301ccef5bb2e8a68a (patch)
treeef35c3da25ff76dc2feb28677d0e33f54f724cf3 /host/lib/usrp
parentef9ca5f928a9ebe4a3f8551698ea4f20f52f6652 (diff)
downloaduhd-627075e60e0b893a412e849301ccef5bb2e8a68a.tar.gz
uhd-627075e60e0b893a412e849301ccef5bb2e8a68a.tar.bz2
uhd-627075e60e0b893a412e849301ccef5bb2e8a68a.zip
uhd: move thread loop condition flag to before barrier (prevents race condition)
Diffstat (limited to 'host/lib/usrp')
-rw-r--r--host/lib/usrp/usrp2/io_impl.cpp2
-rw-r--r--host/lib/usrp/usrp_e100/io_impl.cpp2
2 files changed, 2 insertions, 2 deletions
diff --git a/host/lib/usrp/usrp2/io_impl.cpp b/host/lib/usrp/usrp2/io_impl.cpp
index 07cbd2432..005be7ce4 100644
--- a/host/lib/usrp/usrp2/io_impl.cpp
+++ b/host/lib/usrp/usrp2/io_impl.cpp
@@ -228,9 +228,9 @@ void usrp2_impl::io_impl::recv_pirate_loop(
zero_copy_if::sptr err_xport,
size_t index
){
+ recv_pirate_crew_raiding = true;
spawn_barrier.wait();
set_thread_priority_safe();
- recv_pirate_crew_raiding = true;
//store a reference to the flow control monitor (offset by max dsps)
flow_control_monitor &fc_mon = *(this->fc_mons[index*usrp2_mboard_impl::MAX_NUM_DSPS]);
diff --git a/host/lib/usrp/usrp_e100/io_impl.cpp b/host/lib/usrp/usrp_e100/io_impl.cpp
index cbab5a761..51ff02d3b 100644
--- a/host/lib/usrp/usrp_e100/io_impl.cpp
+++ b/host/lib/usrp/usrp_e100/io_impl.cpp
@@ -109,9 +109,9 @@ struct usrp_e100_impl::io_impl{
void usrp_e100_impl::io_impl::recv_pirate_loop(
boost::barrier &spawn_barrier, usrp_e100_clock_ctrl::sptr clock_ctrl
){
+ recv_pirate_crew_raiding = true;
spawn_barrier.wait();
set_thread_priority_safe();
- recv_pirate_crew_raiding = true;
while(recv_pirate_crew_raiding){
managed_recv_buffer::sptr buff = this->data_xport->get_recv_buff();