Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
cpython
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
cpython
Commits
59f06821
Commit
59f06821
authored
Nov 14, 2014
by
Guido van Rossum
Browse files
Options
Browse Files
Download
Plain Diff
- Issue #22841: Reject coroutines in asyncio add_signal_handler().
Patch by Ludovic.Gasc.
parents
6fd113c2
e36fcde3
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
18 additions
and
0 deletions
+18
-0
Lib/asyncio/unix_events.py
Lib/asyncio/unix_events.py
+3
-0
Lib/test/test_asyncio/test_unix_events.py
Lib/test/test_asyncio/test_unix_events.py
+12
-0
Misc/NEWS
Misc/NEWS
+3
-0
No files found.
Lib/asyncio/unix_events.py
View file @
59f06821
...
...
@@ -13,6 +13,7 @@ import threading
from
.
import
base_events
from
.
import
base_subprocess
from
.
import
constants
from
.
import
coroutines
from
.
import
events
from
.
import
selector_events
from
.
import
selectors
...
...
@@ -66,6 +67,8 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
Raise ValueError if the signal number is invalid or uncatchable.
Raise RuntimeError if there is a problem setting up the handler.
"""
if
coroutines
.
iscoroutinefunction
(
callback
):
raise
TypeError
(
"coroutines cannot be used with call_soon()"
)
self
.
_check_signal
(
sig
)
try
:
# set_wakeup_fd() raises ValueError if this is not the
...
...
Lib/test/test_asyncio/test_unix_events.py
View file @
59f06821
...
...
@@ -63,6 +63,18 @@ class SelectorEventLoopSignalTests(test_utils.TestCase):
self
.
loop
.
add_signal_handler
,
signal
.
SIGINT
,
lambda
:
True
)
@
mock
.
patch
(
'asyncio.unix_events.signal'
)
def
test_add_signal_handler_coroutine_error
(
self
,
m_signal
):
@
asyncio
.
coroutine
def
simple_coroutine
():
yield
from
[]
self
.
assertRaises
(
TypeError
,
self
.
loop
.
add_signal_handler
,
signal
.
SIGINT
,
simple_coroutine
)
@
mock
.
patch
(
'asyncio.unix_events.signal'
)
def
test_add_signal_handler
(
self
,
m_signal
):
m_signal
.
NSIG
=
signal
.
NSIG
...
...
Misc/NEWS
View file @
59f06821
...
...
@@ -183,6 +183,9 @@ Core and Builtins
Library
-------
-
Issue
#
22841
:
Reject
coroutines
in
asyncio
add_signal_handler
().
Patch
by
Ludovic
.
Gasc
.
-
Issue
#
19494
:
Added
urllib
.
request
.
HTTPBasicPriorAuthHandler
.
Patch
by
Matej
Cepl
.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment