#30624 / selectors: use bare except clause in order to not leave the fd in a bad state in case of error (#2082)
This commit is contained in:
parent
6b6e687766
commit
05dc20f992
|
@ -387,7 +387,7 @@ class _PollLikeSelector(_BaseSelectorImpl):
|
|||
selector_events |= self._EVENT_WRITE
|
||||
try:
|
||||
self._selector.modify(key.fd, selector_events)
|
||||
except Exception:
|
||||
except:
|
||||
super().unregister(fileobj)
|
||||
raise
|
||||
changed = True
|
||||
|
@ -524,7 +524,7 @@ if hasattr(select, 'kqueue'):
|
|||
kev = select.kevent(key.fd, select.KQ_FILTER_WRITE,
|
||||
select.KQ_EV_ADD)
|
||||
self._selector.control([kev], 0, 0)
|
||||
except Exception:
|
||||
except:
|
||||
super().unregister(fileobj)
|
||||
raise
|
||||
return key
|
||||
|
|
|
@ -350,6 +350,10 @@ Extension Modules
|
|||
Library
|
||||
-------
|
||||
|
||||
- bpo-30624: selectors does not take KeyboardInterrupt and SystemExit into
|
||||
account, leaving a fd in a bad state in case of error. Patch by Giampaolo
|
||||
Rodola'.
|
||||
|
||||
- bpo-30595: multiprocessing.Queue.get() with a timeout now polls its reader in
|
||||
non-blocking mode if it succeeded to aquire the lock but the acquire took
|
||||
longer than the timeout.
|
||||
|
|
Loading…
Reference in New Issue