Mercurial > hg
view tests/test-requires.t @ 35432:86b8cc1f244e
worker: make windows workers daemons
The windows workers weren't daemons and were not correctly killed when ctrl-c'd from the terminal. Withi this change when the main thread is killed, all daemons get killed as well.
I also reduced the time we give to workers to cleanup nicely to not have people ctrl-c'ing when they get inpatient.
The output when threads clened up nicely:
PS C:\<dir>> hg.exe sparse --disable-profile SparseProfiles/<profile>.sparse
interrupted!
The output when threads don't clenup in 1 sec:
PS C:\<dir> hg.exe sparse --enable-profile SparseProfiles/<profile>.sparse
failed to kill worker threads while handling an exception
interrupted!
Exception in thread Thread-4 (most likely raised during interpreter shutdown):
PS C:\<dir>>
Test Plan:
Run hg command on windows (pull/update/sparse). Ctrl-C'd sparse --enable-profile command that was using threads and observed in proces explorer that all threads got killed.
ran tests on CentOS
Differential Revision: https://phab.mercurial-scm.org/D1564
author | Wojciech Lis <wlis@fb.com> |
---|---|
date | Thu, 30 Nov 2017 16:01:53 -0800 |
parents | 68bc85f46fe3 |
children | ecac0006b90e |
line wrap: on
line source
$ hg init t $ cd t $ echo a > a $ hg add a $ hg commit -m test $ rm .hg/requires $ hg tip abort: unknown version (2) in revlog 00changelog.i! [255] $ echo indoor-pool > .hg/requires $ hg tip abort: repository requires features unknown to this Mercurial: indoor-pool! (see https://mercurial-scm.org/wiki/MissingRequirement for more information) [255] $ echo outdoor-pool >> .hg/requires $ hg tip abort: repository requires features unknown to this Mercurial: indoor-pool outdoor-pool! (see https://mercurial-scm.org/wiki/MissingRequirement for more information) [255] $ cd .. Test checking between features supported locally and ones required in another repository of push/pull/clone on localhost: $ mkdir supported-locally $ cd supported-locally $ hg init supported $ echo a > supported/a $ hg -R supported commit -Am '#0 at supported' adding a $ echo 'featuresetup-test' >> supported/.hg/requires $ cat > $TESTTMP/supported-locally/supportlocally.py <<EOF > from __future__ import absolute_import > from mercurial import extensions, localrepo > def featuresetup(ui, supported): > for name, module in extensions.extensions(ui): > if __name__ == module.__name__: > # support specific feature locally > supported |= {'featuresetup-test'} > return > def uisetup(ui): > localrepo.localrepository.featuresetupfuncs.add(featuresetup) > EOF $ cat > supported/.hg/hgrc <<EOF > [extensions] > # enable extension locally > supportlocally = $TESTTMP/supported-locally/supportlocally.py > EOF $ hg -R supported status $ hg init push-dst $ hg -R supported push push-dst pushing to push-dst abort: required features are not supported in the destination: featuresetup-test [255] $ hg init pull-src $ hg -R pull-src pull supported pulling from supported abort: required features are not supported in the destination: featuresetup-test [255] $ hg clone supported clone-dst abort: repository requires features unknown to this Mercurial: featuresetup-test! (see https://mercurial-scm.org/wiki/MissingRequirement for more information) [255] $ hg clone --pull supported clone-dst abort: required features are not supported in the destination: featuresetup-test [255] $ cd ..