• xusydoc@chromium.org's avatar
    Kill subprocesses on KeyboardInterrupt. · 2fd6c3fc
    xusydoc@chromium.org authored
    SVN traps SIGINT and attempts to clean itself up, but this results in hangs
    waiting for TCP. This patch does two things: daemonizes worker threads so they
    are culled when the main thread dies (is ctrl-C'd) and keeps track of spawned
    subprocesses to kill any remaining ones when the main program is ctrl-C'd.
    
    A user ctrl-C'ing gclient has to manually terminate hung SVN processes, so this
    introduces no extra data loss or hazard. stracing a hung SVN process shows that
    it is indeed hanging on TCP reads after receiving a SIGINT, implying there is an
    underlying but in the SVN binary.
    
    Review URL: https://chromiumcodereview.appspot.com/14759006
    
    git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@198205 0039d316-1c4b-4281-b951-d872f2087c98
    2fd6c3fc
gclient.py 68.1 KB