Revision 54caee78

b/host/lib/usrp/b100/b100_ctrl.cpp
51 51
    ctrl_data_t read(boost::uint32_t addr, size_t len);
52 52
    
53 53
    ~b100_ctrl_impl(void) {
54
        bbl_out_marauding = false;
55 54
        viking_marauders.interrupt_all();
56 55
        viking_marauders.join_all();
57 56
    }
......
67 66
    bounded_buffer<ctrl_data_t> sync_ctrl_fifo;
68 67
    bounded_buffer<async_metadata_t> async_msg_fifo;
69 68
    boost::thread_group viking_marauders;
70
    bool bbl_out_marauding;
71 69
    
72 70
    uhd::transport::usb_zero_copy::sptr _ctrl_transport;
73 71
    boost::uint8_t _seq;
......
168 166
 * wait for a control operation to finish before starting another one.
169 167
 **********************************************************************/
170 168
void b100_ctrl_impl::viking_marauder_loop(boost::barrier &spawn_barrier) {
171
    bbl_out_marauding = true;
172 169
    spawn_barrier.wait();
173 170
    set_thread_priority_safe();
174 171
    
175
    while(bbl_out_marauding){
172
    while (not boost::this_thread::interruption_requested()){
176 173
        managed_recv_buffer::sptr rbuf = _ctrl_transport->get_recv_buff();
177 174
        if(!rbuf.get()) continue; //that's ok, there are plenty of villages to pillage!
178 175
        const boost::uint16_t *pkt_buf = rbuf->cast<const boost::uint16_t *>();

Also available in: Unified diff