mirror of
https://github.com/saymrwulf/uhd.git
synced 2026-05-16 21:10:10 +00:00
Sometimes when running usrp_hwd.py in a terminal and then canceling it with Ctrl+C, it prints a really large stacktrace into the terminal resulting from an uncaught gevent BlockingSwitchOutError. It seems like there was an attempt to catch this in usrp_hwd.py:kill_time(). This try-except was surrounding a call to Process.join() which, to the best of my knowledge, can't ever throw this exception. Based on my troubleshooting, this error comes from the SIGTERM signal handler of the RPC process. The handler (defined in rpc_server.py:_rpc_server_process), is just a direct call to RPCServer.stop(). When the server's backed is a thread pool, this call may block when joining the thread pool, causing gevent to complain about execution attempting to block in a signal handler. This commit resolves this issue by simply triggering an event in the signal handler which prompts a different thread to clean up the server and end the process. Signed-off-by: Samuel O'Brien <sam.obrien@ni.com> |
||
|---|---|---|
| .. | ||
| chips | ||
| cores | ||
| dboard_manager | ||
| periph_manager | ||
| sys_utils | ||
| xports | ||
| __init__.py | ||
| aurora_control.py | ||
| bfrfs.py | ||
| bist.py | ||
| CMakeLists.txt | ||
| components.py | ||
| discovery.py | ||
| e31x_legacy_eeprom.py | ||
| eeprom.py | ||
| ethdispatch.py | ||
| fpga_bit_to_bin.py | ||
| gpsd_iface.py | ||
| mpmlog.py | ||
| mpmtypes.py | ||
| mpmutils.py | ||
| prefs.py | ||
| rpc_server.py | ||
| test_bfrfs.py | ||
| user_eeprom.py | ||