diff options
| author | Josh Blum <josh@joshknows.com> | 2011-04-01 10:40:21 -0700 | 
|---|---|---|
| committer | Josh Blum <josh@joshknows.com> | 2011-04-01 10:40:21 -0700 | 
| commit | baaa2c55e73f7476ffcd47a2c3ced5edbfeb6f84 (patch) | |
| tree | b53a6f43d04d155a5593b3dcdc65ed73f6d125f5 /host/lib/usrp/usrp_e100 | |
| parent | daf91c0a8877909a7100c2ed0274ef3002de0725 (diff) | |
| parent | 1c5076ea68345e74de35cad43e4a4b4adf68fa15 (diff) | |
| download | uhd-baaa2c55e73f7476ffcd47a2c3ced5edbfeb6f84.tar.gz uhd-baaa2c55e73f7476ffcd47a2c3ced5edbfeb6f84.tar.bz2 uhd-baaa2c55e73f7476ffcd47a2c3ced5edbfeb6f84.zip | |
Merge branch 'use_boost_barrier'
Diffstat (limited to 'host/lib/usrp/usrp_e100')
| -rw-r--r-- | host/lib/usrp/usrp_e100/io_impl.cpp | 16 | 
1 files changed, 11 insertions, 5 deletions
| diff --git a/host/lib/usrp/usrp_e100/io_impl.cpp b/host/lib/usrp/usrp_e100/io_impl.cpp index fc6aaeaee..cbab5a761 100644 --- a/host/lib/usrp/usrp_e100/io_impl.cpp +++ b/host/lib/usrp/usrp_e100/io_impl.cpp @@ -23,7 +23,8 @@  #include "../../transport/vrt_packet_handler.hpp"  #include <boost/bind.hpp>  #include <boost/format.hpp> -#include <boost/thread.hpp> +#include <boost/thread/thread.hpp> +#include <boost/thread/barrier.hpp>  #include <iostream>  using namespace uhd; @@ -93,7 +94,7 @@ struct usrp_e100_impl::io_impl{      bool continuous_streaming;      //a pirate's life is the life for me! -    void recv_pirate_loop(usrp_e100_clock_ctrl::sptr); +    void recv_pirate_loop(boost::barrier &, usrp_e100_clock_ctrl::sptr);      bounded_buffer<managed_recv_buffer::sptr> recv_pirate_booty;      bounded_buffer<async_metadata_t> async_msg_fifo;      boost::thread_group recv_pirate_crew; @@ -105,8 +106,10 @@ struct usrp_e100_impl::io_impl{   * - while raiding, loot for recv buffers   * - put booty into the alignment buffer   **********************************************************************/ -void usrp_e100_impl::io_impl::recv_pirate_loop(usrp_e100_clock_ctrl::sptr clock_ctrl) -{ +void usrp_e100_impl::io_impl::recv_pirate_loop( +    boost::barrier &spawn_barrier, usrp_e100_clock_ctrl::sptr clock_ctrl +){ +    spawn_barrier.wait();      set_thread_priority_safe();      recv_pirate_crew_raiding = true; @@ -201,9 +204,12 @@ void usrp_e100_impl::io_init(void){      _iface->poke32(UE_REG_CTRL_TX_POLICY, UE_FLAG_CTRL_TX_POLICY_NEXT_PACKET);      //spawn a pirate, yarrr! +    boost::barrier spawn_barrier(2);      _io_impl->recv_pirate_crew.create_thread(boost::bind( -        &usrp_e100_impl::io_impl::recv_pirate_loop, _io_impl.get(), _clock_ctrl +        &usrp_e100_impl::io_impl::recv_pirate_loop, _io_impl.get(), +        boost::ref(spawn_barrier), _clock_ctrl      )); +    spawn_barrier.wait();  }  void usrp_e100_impl::issue_stream_cmd(const stream_cmd_t &stream_cmd){ | 
