--- a/mercurial/worker.py Thu Mar 02 11:08:20 2017 -0300
+++ b/mercurial/worker.py Thu Mar 02 20:07:35 2017 -0500
@@ -148,12 +148,16 @@
# may do some clean-ups which could cause surprises like deadlock.
# see sshpeer.cleanup for example.
try:
- scmutil.callcatch(ui, workerfunc)
+ try:
+ scmutil.callcatch(ui, workerfunc)
+ finally:
+ ui.flush()
except KeyboardInterrupt:
os._exit(255)
except: # never return, therefore no re-raises
try:
ui.traceback()
+ ui.flush()
finally:
os._exit(255)
else:
--- a/tests/test-simple-update.t Thu Mar 02 11:08:20 2017 -0300
+++ b/tests/test-simple-update.t Thu Mar 02 20:07:35 2017 -0500
@@ -56,3 +56,38 @@
[255]
$ cd ..
+
+update with worker processes
+
+#if no-windows
+
+ $ cat <<EOF > forceworker.py
+ > from mercurial import extensions, worker
+ > def nocost(orig, ui, costperop, nops):
+ > return worker._numworkers(ui) > 1
+ > def uisetup(ui):
+ > extensions.wrapfunction(worker, 'worthwhile', nocost)
+ > EOF
+
+ $ hg init worker
+ $ cd worker
+ $ cat <<EOF >> .hg/hgrc
+ > [extensions]
+ > forceworker = $TESTTMP/forceworker.py
+ > [worker]
+ > numcpus = 4
+ > EOF
+ $ for i in `python $TESTDIR/seq.py 1 100`; do
+ > echo $i > $i
+ > done
+ $ hg ci -qAm 'add 100 files'
+
+ $ hg update null
+ 0 files updated, 0 files merged, 100 files removed, 0 files unresolved
+ $ hg update -v | grep 100
+ getting 100
+ 100 files updated, 0 files merged, 0 files removed, 0 files unresolved
+
+ $ cd ..
+
+#endif