Mercurial > hg > mercurial-source
changeset 9896:2c2f7593ffc4 stable
cmdutil.service: do not _exit(0) in the parent process
The fact that a parent process spawns a daemon does not necessarily means that
it is the only think it has to do. This was forcing since 7c01599dd340 inotify
processes launched implicitely to exit prematurely:
when no inotify server was running, "hg st" for example would only launch a
inotify server, _exit(0) and thus would not return file statuses.
This changeset adds a test for implicitely launched inotify processes.
Change to output of test-inotify-1208 is correct: it reflects the normal
error message of "hg st" when not dying during "hg inserve" daemon creation.
author | Nicolas Dumazet <nicdumz.commits@gmail.com> |
---|---|
date | Tue, 17 Nov 2009 15:00:00 +0900 |
parents | b755a886e8b7 |
children | 97eda2133a9b |
files | mercurial/cmdutil.py tests/test-inotify tests/test-inotify-issue1208.out tests/test-inotify.out |
diffstat | 4 files changed, 15 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -571,7 +571,7 @@ if parentfn: return parentfn(pid) else: - os._exit(0) + return if initfn: initfn()
--- a/tests/test-inotify +++ b/tests/test-inotify @@ -2,7 +2,8 @@ "$TESTDIR/hghave" inotify || exit 80 -hg init +hg init repo1 +cd repo1 touch a b c d e mkdir dir @@ -10,10 +11,18 @@ touch dir/x dir/y dir/bar/foo hg ci -Am m +cd .. +hg clone repo1 repo2 echo "[extensions]" >> $HGRCPATH echo "inotify=" >> $HGRCPATH +cd repo2 +echo b >> a +# check that daemon started automatically works correctly +hg status + +cd ../repo1 echo % inserve hg inserve -d --pid-file=hg.pid cat hg.pid >> "$DAEMON_PIDS"