Good point - I'll move the join_all() to after the process has finished, that way the current interrupt handing should be sufficient.