diff -r a26d33749bd8 -r 496ae1ea4698 mercurial/sshserver.py --- a/mercurial/sshserver.py Wed Apr 22 02:01:22 2009 +0200 +++ b/mercurial/sshserver.py Wed Apr 22 02:01:22 2009 +0200 @@ -37,7 +37,11 @@ self.fout.flush() def serve_forever(self): - while self.serve_one(): pass + try: + while self.serve_one(): pass + finally: + if self.lock is not None: + self.lock.release() sys.exit(0) def serve_one(self):