To reproduce:
1. restart quickbuild.
2. create a configuration running three steps concurrently. Each of these step call sleep command for 60 seconds.
3. cancel the build, and sometimes only one step is cancelled.
This happens because multiple threads enter into interruption handling code of Commandline class, and needs to load some new classes, and some thread may go through, while other threads are blocked.
Description
To reproduce:
1. restart quickbuild.
2. create a configuration running three steps concurrently. Each of these step call sleep command for 60 seconds.
3. cancel the build, and sometimes only one step is cancelled.
This happens because multiple threads enter into interruption handling code of Commandline class, and needs to load some new classes, and some thread may go through, while other threads are blocked.