aboutsummaryrefslogtreecommitdiffstats
path: root/host/lib
diff options
context:
space:
mode:
authorJulian Arnold <julian.arnold@ettus.com>2014-11-17 16:53:58 -0800
committerMartin Braun <martin.braun@ettus.com>2014-11-21 00:04:37 +0100
commitd43a68499e58f279aec136ce4e609732dbaf2d89 (patch)
tree178b8fed29d4401434b1fd32f6575c486fcfd8bc /host/lib
parent3896348122aeecfddb0c8df4ec7db59aaab66e59 (diff)
downloaduhd-d43a68499e58f279aec136ce4e609732dbaf2d89.tar.gz
uhd-d43a68499e58f279aec136ce4e609732dbaf2d89.tar.bz2
uhd-d43a68499e58f279aec136ce4e609732dbaf2d89.zip
b200: serialized access to get_rx/tx_stream
Diffstat (limited to 'host/lib')
-rw-r--r--host/lib/usrp/b200/b200_impl.hpp2
-rw-r--r--host/lib/usrp/b200/b200_io_impl.cpp4
2 files changed, 6 insertions, 0 deletions
diff --git a/host/lib/usrp/b200/b200_impl.hpp b/host/lib/usrp/b200/b200_impl.hpp
index 613844ffc..8f03d81ad 100644
--- a/host/lib/usrp/b200/b200_impl.hpp
+++ b/host/lib/usrp/b200/b200_impl.hpp
@@ -117,6 +117,8 @@ private:
boost::weak_ptr<uhd::rx_streamer> _rx_streamer;
boost::weak_ptr<uhd::tx_streamer> _tx_streamer;
+ boost::mutex _transport_setup_mutex;
+
//async ctrl + msgs
uhd::msg_task::sptr _async_task;
typedef uhd::transport::bounded_buffer<uhd::async_metadata_t> async_md_type;
diff --git a/host/lib/usrp/b200/b200_io_impl.cpp b/host/lib/usrp/b200/b200_io_impl.cpp
index 9f6d593fe..262c95f0d 100644
--- a/host/lib/usrp/b200/b200_io_impl.cpp
+++ b/host/lib/usrp/b200/b200_io_impl.cpp
@@ -256,6 +256,8 @@ boost::optional<uhd::msg_task::msg_type_t> b200_impl::handle_async_task(
**********************************************************************/
rx_streamer::sptr b200_impl::get_rx_stream(const uhd::stream_args_t &args_)
{
+ boost::mutex::scoped_lock lock(_transport_setup_mutex);
+
stream_args_t args = args_;
//setup defaults for unspecified values
@@ -361,6 +363,8 @@ void b200_impl::handle_overflow(const size_t radio_index)
**********************************************************************/
tx_streamer::sptr b200_impl::get_tx_stream(const uhd::stream_args_t &args_)
{
+ boost::mutex::scoped_lock lock(_transport_setup_mutex);
+
stream_args_t args = args_;
//setup defaults for unspecified values