mirror of
https://github.com/python/cpython.git
synced 2025-11-12 03:22:06 +00:00
asyncio: Synchronize with Tulip
* Issue #159: Fix windows_utils.socketpair() - Use "127.0.0.1" (IPv4) or "::1" (IPv6) host instead of "localhost", because "localhost" may be a different IP address - Reject also invalid arguments: only AF_INET/AF_INET6 with SOCK_STREAM (and proto=0) are supported * Reject add/remove reader/writer when event loop is closed. * Fix ResourceWarning warnings
This commit is contained in:
parent
c5cc5011ac
commit
eeeebcd816
4 changed files with 73 additions and 6 deletions
|
|
@ -136,6 +136,8 @@ def _accept_connection(self, protocol_factory, sock,
|
|||
|
||||
def add_reader(self, fd, callback, *args):
|
||||
"""Add a reader callback."""
|
||||
if self._selector is None:
|
||||
raise RuntimeError('Event loop is closed')
|
||||
handle = events.Handle(callback, args, self)
|
||||
try:
|
||||
key = self._selector.get_key(fd)
|
||||
|
|
@ -151,6 +153,8 @@ def add_reader(self, fd, callback, *args):
|
|||
|
||||
def remove_reader(self, fd):
|
||||
"""Remove a reader callback."""
|
||||
if self._selector is None:
|
||||
return False
|
||||
try:
|
||||
key = self._selector.get_key(fd)
|
||||
except KeyError:
|
||||
|
|
@ -171,6 +175,8 @@ def remove_reader(self, fd):
|
|||
|
||||
def add_writer(self, fd, callback, *args):
|
||||
"""Add a writer callback.."""
|
||||
if self._selector is None:
|
||||
raise RuntimeError('Event loop is closed')
|
||||
handle = events.Handle(callback, args, self)
|
||||
try:
|
||||
key = self._selector.get_key(fd)
|
||||
|
|
@ -186,6 +192,8 @@ def add_writer(self, fd, callback, *args):
|
|||
|
||||
def remove_writer(self, fd):
|
||||
"""Remove a writer callback."""
|
||||
if self._selector is None:
|
||||
return False
|
||||
try:
|
||||
key = self._selector.get_key(fd)
|
||||
except KeyError:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue