regtest: Allow to interrupt run-tests and create-refs commands when multiple threads are used
The Queue join implementation uses a non-timed wait that blocks the main thread, making it impossible to interrupt it with CTRL+C or sending SIGINT signal. Using any timeout value for wait would fix the problem, but Queue doesn't allow to pass a timeout to the join method. The Queue implementation is actually quite simple, so we can just add our own implementation with only the things we really need and use a timeout value when calling wait() in join().
Showing with 72 additions and 4 deletions