Skip to content

Commit c4c4649

Browse files
committed
asyncio: sync with Tulip
* Tulip issue 194: Don't use sys.getrefcount() in unit tests * signal.set_wakeup_fd() can now raise an OSError on Python 3.5
1 parent 8966759 commit c4c4649

File tree

3 files changed

+13
-14
lines changed

3 files changed

+13
-14
lines changed

Lib/asyncio/unix_events.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -74,7 +74,7 @@ def add_signal_handler(self, sig, callback, *args):
7474
# event loop running in another thread cannot add a signal
7575
# handler.
7676
signal.set_wakeup_fd(self._csock.fileno())
77-
except ValueError as exc:
77+
except (ValueError, OSError) as exc:
7878
raise RuntimeError(str(exc))
7979

8080
handle = events.Handle(callback, args, self)
@@ -93,7 +93,7 @@ def add_signal_handler(self, sig, callback, *args):
9393
if not self._signal_handlers:
9494
try:
9595
signal.set_wakeup_fd(-1)
96-
except ValueError as nexc:
96+
except (ValueError, OSError) as nexc:
9797
logger.info('set_wakeup_fd(-1) failed: %s', nexc)
9898

9999
if exc.errno == errno.EINVAL:
@@ -138,7 +138,7 @@ def remove_signal_handler(self, sig):
138138
if not self._signal_handlers:
139139
try:
140140
signal.set_wakeup_fd(-1)
141-
except ValueError as exc:
141+
except (ValueError, OSError) as exc:
142142
logger.info('set_wakeup_fd(-1) failed: %s', exc)
143143

144144
return True

Lib/test/test_asyncio/test_selector_events.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -672,15 +672,15 @@ def test_fatal_error(self, m_exc):
672672
def test_connection_lost(self):
673673
exc = OSError()
674674
tr = _SelectorTransport(self.loop, self.sock, self.protocol, None)
675+
self.assertIsNotNone(tr._protocol)
676+
self.assertIsNotNone(tr._loop)
675677
tr._call_connection_lost(exc)
676678

677679
self.protocol.connection_lost.assert_called_with(exc)
678680
self.sock.close.assert_called_with()
679681
self.assertIsNone(tr._sock)
680682

681683
self.assertIsNone(tr._protocol)
682-
self.assertEqual(2, sys.getrefcount(self.protocol),
683-
pprint.pformat(gc.get_referrers(self.protocol)))
684684
self.assertIsNone(tr._loop)
685685

686686

Lib/test/test_asyncio/test_unix_events.py

+8-9
Original file line numberDiff line numberDiff line change
@@ -435,30 +435,29 @@ def test__close(self, m_read):
435435
def test__call_connection_lost(self):
436436
tr = unix_events._UnixReadPipeTransport(
437437
self.loop, self.pipe, self.protocol)
438+
self.assertIsNotNone(tr._protocol)
439+
self.assertIsNotNone(tr._loop)
438440

439441
err = None
440442
tr._call_connection_lost(err)
441443
self.protocol.connection_lost.assert_called_with(err)
442444
self.pipe.close.assert_called_with()
443445

444446
self.assertIsNone(tr._protocol)
445-
self.assertEqual(2, sys.getrefcount(self.protocol),
446-
pprint.pformat(gc.get_referrers(self.protocol)))
447447
self.assertIsNone(tr._loop)
448448

449449
def test__call_connection_lost_with_err(self):
450450
tr = unix_events._UnixReadPipeTransport(
451451
self.loop, self.pipe, self.protocol)
452+
self.assertIsNotNone(tr._protocol)
453+
self.assertIsNotNone(tr._loop)
452454

453455
err = OSError()
454456
tr._call_connection_lost(err)
455457
self.protocol.connection_lost.assert_called_with(err)
456458
self.pipe.close.assert_called_with()
457459

458460
self.assertIsNone(tr._protocol)
459-
460-
self.assertEqual(2, sys.getrefcount(self.protocol),
461-
pprint.pformat(gc.get_referrers(self.protocol)))
462461
self.assertIsNone(tr._loop)
463462

464463

@@ -717,29 +716,29 @@ def test_abort(self, m_write):
717716
def test__call_connection_lost(self):
718717
tr = unix_events._UnixWritePipeTransport(
719718
self.loop, self.pipe, self.protocol)
719+
self.assertIsNotNone(tr._protocol)
720+
self.assertIsNotNone(tr._loop)
720721

721722
err = None
722723
tr._call_connection_lost(err)
723724
self.protocol.connection_lost.assert_called_with(err)
724725
self.pipe.close.assert_called_with()
725726

726727
self.assertIsNone(tr._protocol)
727-
self.assertEqual(2, sys.getrefcount(self.protocol),
728-
pprint.pformat(gc.get_referrers(self.protocol)))
729728
self.assertIsNone(tr._loop)
730729

731730
def test__call_connection_lost_with_err(self):
732731
tr = unix_events._UnixWritePipeTransport(
733732
self.loop, self.pipe, self.protocol)
733+
self.assertIsNotNone(tr._protocol)
734+
self.assertIsNotNone(tr._loop)
734735

735736
err = OSError()
736737
tr._call_connection_lost(err)
737738
self.protocol.connection_lost.assert_called_with(err)
738739
self.pipe.close.assert_called_with()
739740

740741
self.assertIsNone(tr._protocol)
741-
self.assertEqual(2, sys.getrefcount(self.protocol),
742-
pprint.pformat(gc.get_referrers(self.protocol)))
743742
self.assertIsNone(tr._loop)
744743

745744
def test_close(self):

0 commit comments

Comments
 (0)