- assert(driver);
- for (map<sr_dev_inst*, SigSession*>::iterator i = _used_devices.begin();
- i != _used_devices.end(); i++)
- if((*i).first->driver == driver)
- {
- // Notify the current owner of the device
- (*i).second->release_device((*i).first);
-
- // Remove it from the used device list
- _used_devices.erase(i);
-
- // Close the device instance
- sr_dev_close((*i).first);
- }
+ BOOST_FOREACH(shared_ptr<device::Device> dev, _devices) {
+ assert(dev);
+ if(dev->dev_inst()->driver == driver)
+ dev->release();
+ }