asyncio, Tulip issue 143: UNIX domain methods, fix ResourceWarning and

DeprecationWarning warnings. create_unix_server() closes the socket on any
error, not only on OSError.
This commit is contained in:
Victor Stinner 2014-02-19 01:45:59 +01:00
parent 065ca25aae
commit 884e40b982
2 changed files with 19 additions and 17 deletions

View file

@ -183,13 +183,12 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
raise ValueError(
'path and sock can not be specified at the same time')
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM, 0)
try:
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM, 0)
sock.setblocking(False)
yield from self.sock_connect(sock, path)
except OSError:
if sock is not None:
sock.close()
except:
sock.close()
raise
else:
@ -213,6 +212,7 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
try:
sock.bind(path)
except OSError as exc:
sock.close()
if exc.errno == errno.EADDRINUSE:
# Let's improve the error message by adding
# with what exact address it occurs.