git-repo/subcmds
David 'Digit' Turner e2126652a3 Make "repo sync -j<count>" stop properly on Ctrl-C.
The threaded 'repo sync' implementation would very often freeze the
process when interrupted by the user with Ctrl-C. The only solution
being to kill -9 the process explicitly from another terminal.

The reason for this is best explained here:

http://snakesthatbite.blogspot.fr/2010/09/cpython-threading-interrupting.html

This patch makes all helper sync threads 'daemon', which allows the
process to terminate immediately on Ctrl-C.

Note that this will forcefully kill all threads in case of interruption; this
is generally a bad thing, but:

  1/ This is equivalent to calling kill -9 in another terminal, which
     is the _only_ thing that can currently stop the process.

  2/ There doesn't seem to be a way to tell the worker threads to
     gently stop when they are in a blocking operation anyway (even
     in the non-threaded case).

+ Do the same for "repo status -j<count>".

Change-Id: Ieaf45b0eacee36f35427f8edafd87415c2aa7be4
2012-09-05 11:38:41 -07:00
..
__init__.py Initial Contribution 2008-10-21 07:00:00 -07:00
abandon.py Fixed repo abandon to give better messages. 2011-04-07 16:49:23 -04:00
branches.py branches: Enable output of multiple projects 2010-05-04 07:51:28 -07:00
checkout.py Fixed repo checkout error message when git reports errors. 2011-04-07 16:55:35 -04:00
cherry_pick.py Remove unused imports 2012-08-23 12:15:26 +02:00
diff.py Option for 'repo diff' to generate output suitable for 'patch' cmd 2012-04-13 09:20:10 -07:00
download.py Remove unused imports 2012-08-23 12:15:26 +02:00
forall.py Add project annotation handling to repo 2012-04-23 12:35:08 -07:00
grep.py Remove unused imports 2012-08-23 12:15:26 +02:00
help.py help: Fix help sync 2011-10-11 15:23:41 -07:00
init.py init: Improved help text for the --mirror option 2012-08-23 12:15:49 +02:00
list.py Add 'list' command to repo. 2011-03-16 12:55:44 -07:00
manifest.py repo manifest: default to stdout if no "-o" 2012-09-04 09:30:18 -07:00
overview.py Add "repo overview" command. 2012-07-31 22:08:32 -07:00
prune.py Initial Contribution 2008-10-21 07:00:00 -07:00
rebase.py Remove unused imports 2012-08-23 12:15:26 +02:00
selfupdate.py sync: Run git gc --auto after fetch 2011-01-09 17:39:22 -08:00
smartsync.py Aliasing sync -s to 'smartsync' 2010-05-17 09:58:55 -07:00
stage.py Only display project path in 'repo stage -i' 2009-04-18 11:22:13 -07:00
start.py Fix for failures with repo upload for projects that have a SHA1 for a revision; instead use the default manifest revision 2012-06-14 16:54:32 -07:00
status.py Make "repo sync -j<count>" stop properly on Ctrl-C. 2012-09-05 11:38:41 -07:00
sync.py Make "repo sync -j<count>" stop properly on Ctrl-C. 2012-09-05 11:38:41 -07:00
upload.py upload: add --draft option. 2012-07-28 15:44:05 -07:00
version.py Describe the repo launch version in repo version 2011-11-29 15:02:15 -08:00