Mercurial > hg-stable
changeset 4673:d8442fc0da8d
Merge with crew
author | Patrick Mezard <pmezard@gmail.com> |
---|---|
date | Thu, 21 Jun 2007 22:19:41 +0200 |
parents | 150afe6becf6 (current diff) 272c0a09b203 (diff) |
children | 723e0ddb6ada |
files | mercurial/commands.py mercurial/util.py |
diffstat | 3 files changed, 13 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Thu Jun 21 13:09:01 2007 -0500 +++ b/mercurial/commands.py Thu Jun 21 22:19:41 2007 +0200 @@ -2432,6 +2432,7 @@ class service: def init(self): + util.set_signal_handler() try: self.httpd = hgweb.server.create_server(parentui, repo) except socket.error, inst:
--- a/mercurial/util.py Thu Jun 21 13:09:01 2007 -0500 +++ b/mercurial/util.py Thu Jun 21 22:19:41 2007 +0200 @@ -1100,6 +1100,9 @@ return p_name return default + def set_signal_handler(): + pass + def find_exe(name, default=None): '''find path of an executable. if name contains a path component, return it as is. otherwise,
--- a/mercurial/util_win32.py Thu Jun 21 13:09:01 2007 -0500 +++ b/mercurial/util_win32.py Thu Jun 21 22:19:41 2007 +0200 @@ -299,3 +299,12 @@ raise WinIOError(err) getuser_fallback = win32api.GetUserName + +def set_signal_handler(): + """Register a termination handler for console events including + CTRL+C. python signal handlers do not work well with socket + operations. + """ + def handler(event): + win32process.ExitProcess(1) + win32api.SetConsoleCtrlHandler(handler)