summaryrefslogtreecommitdiff
path: root/usrp/host/lib/usrp_basic_libusb1.cc
diff options
context:
space:
mode:
Diffstat (limited to 'usrp/host/lib/usrp_basic_libusb1.cc')
-rw-r--r--usrp/host/lib/usrp_basic_libusb1.cc10
1 files changed, 6 insertions, 4 deletions
diff --git a/usrp/host/lib/usrp_basic_libusb1.cc b/usrp/host/lib/usrp_basic_libusb1.cc
index 6c22b5c6f2..b1e3a5e3ee 100644
--- a/usrp/host/lib/usrp_basic_libusb1.cc
+++ b/usrp/host/lib/usrp_basic_libusb1.cc
@@ -103,7 +103,8 @@ usrp_basic::usrp_basic (int which_board,
*/
memset (d_fpga_shadows, 0, sizeof (d_fpga_shadows));
- d_ctx = usrp_one_time_init(true);
+// d_ctx = usrp_one_time_init(true);
+ usrp_one_time_init (&d_ctx);
if (!usrp_load_standard_bits (which_board, false, fpga_filename, firmware_filename, d_ctx))
throw std::runtime_error ("usrp_basic/usrp_load_standard_bits");
@@ -144,9 +145,10 @@ usrp_basic::~usrp_basic ()
libusb_close (d_udh);
// Each object should be running in it's own context. If running in default
- // (NULL) context then something went wrong.
+ // context then leave the instance open as it may be shared. This might
+ // occur in mixed libusb-0.12 and libusb-1.0 environments.
- assert (d_ctx != NULL);
- libusb_exit (d_ctx);
+ if (d_ctx != NULL)
+ libusb_exit (d_ctx);
}