Remove spurious locks, improve handling of wlock
- kwcommitctx is inside the wlock of repo.commit: no lock
- _kwfwrite only needs wlock
wlock outside try block, so we don't need to import lock.release
_kwfwrite should even be safer that way, as we moved the status
call inside the try-except block.
Thanks to Benoit Boissinot for help.
#!/usr/bin/env python"""This does HTTP GET requests given a host:port and path and returnsa subset of the headers plus the body of the result."""importhttplib,sys,retry:importmsvcrt,osmsvcrt.setmode(sys.stdout.fileno(),os.O_BINARY)msvcrt.setmode(sys.stderr.fileno(),os.O_BINARY)exceptImportError:passheaders=[h.lower()forhinsys.argv[3:]]conn=httplib.HTTPConnection(sys.argv[1])conn.request("GET",sys.argv[2])response=conn.getresponse()printresponse.status,response.reasonforhinheaders:ifresponse.getheader(h,None)isnotNone:print"%s: %s"%(h,response.getheader(h))printdata=response.read()data=re.sub('\d+ years','many years',data)sys.stdout.write(data)if200<=response.status<=299:sys.exit(0)sys.exit(1)