diff options
author | Aaron Rossetto <aaron.rossetto@ni.com> | 2020-11-19 08:25:47 -0600 |
---|---|---|
committer | michael-west <michael.west@ettus.com> | 2020-12-04 12:05:02 -0800 |
commit | f970d46c56687d2570cc671733ff7736f9ae778b (patch) | |
tree | 7cf9ba018248729550efb1f54dbdaf7fa92d6adb /host/docs/coding.dox | |
parent | de3b48e89f2f9711b4b97c080d5c35baba45f573 (diff) | |
download | uhd-f970d46c56687d2570cc671733ff7736f9ae778b.tar.gz uhd-f970d46c56687d2570cc671733ff7736f9ae778b.tar.bz2 uhd-f970d46c56687d2570cc671733ff7736f9ae778b.zip |
multi_usrp_rfnoc: Serialize make_rfnoc_device
In certain execution environments (e.g. NI's LabVIEW), the instantiation
of multi_usrp objects may execute in parallel in two different
threads. As the RFNoC block instances are shared between the multi_usrp
instances, there is a risk that threads racing to configure the initial
state of the Tx and Rx chains may operate on inconsistent or incomplete
views of the state of the RFNoC blocks that make up the chain, leaving
them in an invalid state that leads to client-facing errors.
This commit serializes calls to make_rfnoc_device to prevent creating
multiple multi_usrp objects in parallel. It also creates a map of
existing multi_usrp devices and returns the existing multi_usrp
object if it exists.
Diffstat (limited to 'host/docs/coding.dox')
0 files changed, 0 insertions, 0 deletions