[#722] fix segfault and hung threads on KeyboardIinterrupt during parallel get
Wherein we close down threads in an orderly way, so that things don't leave things to be disposed in the wrong order for the ever persnickety SSL shutdown logic.
Experiments show that SIGTERM actually does induce the Python interpreter to shut down non-daemonic threads, so installing a signal handler for that may not be necessary in the end.
After a bit of manual testing, will attempt to make a proper test for SIGINT and SIGTERM to ensure things are left in an ok state.
A GUI for example that maintains background asynch parallel transfers using PRC could trap and guard against Ctrl-C thusly:
from irods.parallel import abort_asynchronous_transfers
signal(SIGINT, lambda *_:exit(0 if abort_asynchronous_transfers() else 0))
Looks like we have a conflict.
Seems this PR is close to completion?
Just checking to see if this PR is still being considered for 3.3.0.
Just checking to see if this PR is still being considered for 3.3.0.
Will check its currency to see whether the segfault is still a concern. If so, then I think we can consider it for this release.