Staging
v0.5.1
https://github.com/python/cpython
Revision 5a3a71dddbe80edc75a3a74ce3b7978cf8635901 authored by Victor Stinner on 19 March 2020, 16:40:12 UTC, committed by GitHub on 19 March 2020, 16:40:12 UTC
If a thread different than the main thread gets a signal, the
bytecode evaluation loop is no longer interrupted at each bytecode
instruction to check for pending signals which cannot be handled.
Only the main thread of the main interpreter can handle signals.

Previously, the bytecode evaluation loop was interrupted at each
instruction until the main thread handles signals.

Changes:

* COMPUTE_EVAL_BREAKER() and SIGNAL_PENDING_SIGNALS() no longer set
  eval_breaker to 1 if the current thread cannot handle signals.
* take_gil() now always recomputes eval_breaker.
1 parent 77248a2
History
Tip revision: 5a3a71dddbe80edc75a3a74ce3b7978cf8635901 authored by Victor Stinner on 19 March 2020, 16:40:12 UTC
bpo-40010: Optimize signal handling in multithreaded applications (GH-19067)
Tip revision: 5a3a71d
File Mode Size
asyncio
collections
concurrent
ctypes
curses
dbm
distutils
email
encodings
ensurepip
html
http
idlelib
importlib
json
lib2to3
logging
msilib
multiprocessing
pydoc_data
site-packages
sqlite3
test
tkinter
turtledemo
unittest
urllib
venv
wsgiref
xml
xmlrpc
__future__.py -rw-r--r-- 5.0 KB
__phello__.foo.py -rw-r--r-- 64 bytes
_aix_support.py -rw-r--r-- 3.2 KB
_bootlocale.py -rw-r--r-- 1.8 KB
_bootsubprocess.py -rw-r--r-- 2.8 KB
_collections_abc.py -rw-r--r-- 25.5 KB
_compat_pickle.py -rw-r--r-- 8.5 KB
_compression.py -rw-r--r-- 5.2 KB
_markupbase.py -rw-r--r-- 14.3 KB
_osx_support.py -rw-r--r-- 18.7 KB
_py_abc.py -rw-r--r-- 6.0 KB
_pydecimal.py -rw-r--r-- 223.3 KB
_pyio.py -rw-r--r-- 91.2 KB
_sitebuiltins.py -rw-r--r-- 3.0 KB
_strptime.py -rw-r--r-- 24.7 KB
_threading_local.py -rw-r--r-- 7.1 KB
_weakrefset.py -rw-r--r-- 5.6 KB
abc.py -rw-r--r-- 4.4 KB
aifc.py -rw-r--r-- 31.8 KB
antigravity.py -rw-r--r-- 477 bytes
argparse.py -rw-r--r-- 95.5 KB
ast.py -rw-r--r-- 47.4 KB
asynchat.py -rw-r--r-- 11.1 KB
asyncore.py -rw-r--r-- 19.6 KB
base64.py -rwxr-xr-x 19.4 KB
bdb.py -rw-r--r-- 30.7 KB
binhex.py -rw-r--r-- 14.4 KB
bisect.py -rw-r--r-- 2.3 KB
bz2.py -rw-r--r-- 11.9 KB
cProfile.py -rwxr-xr-x 5.8 KB
calendar.py -rw-r--r-- 24.2 KB
cgi.py -rwxr-xr-x 32.8 KB
cgitb.py -rw-r--r-- 11.8 KB
chunk.py -rw-r--r-- 5.3 KB
cmd.py -rw-r--r-- 14.5 KB
code.py -rw-r--r-- 10.4 KB
codecs.py -rw-r--r-- 35.8 KB
codeop.py -rw-r--r-- 5.9 KB
colorsys.py -rw-r--r-- 4.0 KB
compileall.py -rw-r--r-- 18.2 KB
configparser.py -rw-r--r-- 53.1 KB
contextlib.py -rw-r--r-- 23.0 KB
contextvars.py -rw-r--r-- 129 bytes
copy.py -rw-r--r-- 8.5 KB
copyreg.py -rw-r--r-- 7.0 KB
crypt.py -rw-r--r-- 3.7 KB
csv.py -rw-r--r-- 15.8 KB
dataclasses.py -rw-r--r-- 48.2 KB
datetime.py -rw-r--r-- 86.1 KB
decimal.py -rw-r--r-- 320 bytes
difflib.py -rw-r--r-- 82.1 KB
dis.py -rw-r--r-- 20.1 KB
doctest.py -rw-r--r-- 101.9 KB
enum.py -rw-r--r-- 33.2 KB
filecmp.py -rw-r--r-- 9.6 KB
fileinput.py -rw-r--r-- 14.4 KB
fnmatch.py -rw-r--r-- 4.0 KB
formatter.py -rw-r--r-- 14.8 KB
fractions.py -rw-r--r-- 23.8 KB
ftplib.py -rw-r--r-- 34.1 KB
functools.py -rw-r--r-- 45.6 KB
genericpath.py -rw-r--r-- 4.9 KB
getopt.py -rw-r--r-- 7.3 KB
getpass.py -rw-r--r-- 5.8 KB
gettext.py -rw-r--r-- 26.5 KB
glob.py -rw-r--r-- 5.6 KB
gzip.py -rw-r--r-- 21.3 KB
hashlib.py -rw-r--r-- 9.5 KB
heapq.py -rw-r--r-- 22.3 KB
hmac.py -rw-r--r-- 6.5 KB
imaplib.py -rw-r--r-- 53.1 KB
imghdr.py -rw-r--r-- 3.7 KB
imp.py -rw-r--r-- 10.3 KB
inspect.py -rw-r--r-- 115.2 KB
io.py -rw-r--r-- 3.5 KB
ipaddress.py -rw-r--r-- 72.7 KB
keyword.py -rw-r--r-- 945 bytes
linecache.py -rw-r--r-- 5.3 KB
locale.py -rw-r--r-- 76.4 KB
lzma.py -rw-r--r-- 12.7 KB
mailbox.py -rw-r--r-- 76.8 KB
mailcap.py -rw-r--r-- 7.9 KB
mimetypes.py -rw-r--r-- 21.1 KB
modulefinder.py -rw-r--r-- 23.9 KB
netrc.py -rw-r--r-- 5.4 KB
nntplib.py -rw-r--r-- 40.7 KB
ntpath.py -rw-r--r-- 27.1 KB
nturl2path.py -rw-r--r-- 2.5 KB
numbers.py -rw-r--r-- 10.0 KB
opcode.py -rw-r--r-- 5.5 KB
operator.py -rw-r--r-- 10.5 KB
optparse.py -rw-r--r-- 59.0 KB
os.py -rw-r--r-- 38.3 KB
pathlib.py -rw-r--r-- 51.3 KB
pdb.py -rwxr-xr-x 61.2 KB
pickle.py -rw-r--r-- 63.3 KB
pickletools.py -rw-r--r-- 91.3 KB
pipes.py -rw-r--r-- 8.7 KB
pkgutil.py -rw-r--r-- 23.7 KB
platform.py -rwxr-xr-x 39.3 KB
plistlib.py -rw-r--r-- 26.7 KB
poplib.py -rw-r--r-- 14.8 KB
posixpath.py -rw-r--r-- 15.3 KB
pprint.py -rw-r--r-- 22.0 KB
profile.py -rwxr-xr-x 21.9 KB
pstats.py -rw-r--r-- 28.6 KB
pty.py -rw-r--r-- 4.7 KB
py_compile.py -rw-r--r-- 8.1 KB
pyclbr.py -rw-r--r-- 14.9 KB
pydoc.py -rwxr-xr-x 104.8 KB
queue.py -rw-r--r-- 11.1 KB
quopri.py -rwxr-xr-x 7.1 KB
random.py -rw-r--r-- 28.7 KB
re.py -rw-r--r-- 15.4 KB
reprlib.py -rw-r--r-- 5.1 KB
rlcompleter.py -rw-r--r-- 6.9 KB
runpy.py -rw-r--r-- 11.8 KB
sched.py -rw-r--r-- 6.3 KB
secrets.py -rw-r--r-- 2.0 KB
selectors.py -rw-r--r-- 18.1 KB
shelve.py -rw-r--r-- 8.3 KB
shlex.py -rw-r--r-- 13.0 KB
shutil.py -rw-r--r-- 49.9 KB
signal.py -rw-r--r-- 2.2 KB
site.py -rw-r--r-- 21.1 KB
smtpd.py -rwxr-xr-x 34.0 KB
smtplib.py -rwxr-xr-x 43.5 KB
sndhdr.py -rw-r--r-- 6.9 KB
socket.py -rwxr-xr-x 35.8 KB
socketserver.py -rw-r--r-- 26.3 KB
sre_compile.py -rw-r--r-- 26.1 KB
sre_constants.py -rw-r--r-- 7.0 KB
sre_parse.py -rw-r--r-- 39.3 KB
ssl.py -rw-r--r-- 49.6 KB
stat.py -rw-r--r-- 5.4 KB
statistics.py -rw-r--r-- 38.7 KB
string.py -rw-r--r-- 10.3 KB
stringprep.py -rw-r--r-- 12.6 KB
struct.py -rw-r--r-- 257 bytes
subprocess.py -rw-r--r-- 81.5 KB
sunau.py -rw-r--r-- 17.7 KB
symbol.py -rw-r--r-- 2.1 KB
symtable.py -rw-r--r-- 7.4 KB
sysconfig.py -rw-r--r-- 24.0 KB
tabnanny.py -rwxr-xr-x 11.1 KB
tarfile.py -rwxr-xr-x 91.8 KB
telnetlib.py -rw-r--r-- 22.7 KB
tempfile.py -rw-r--r-- 27.4 KB
textwrap.py -rw-r--r-- 19.0 KB
this.py -rw-r--r-- 1003 bytes
threading.py -rw-r--r-- 49.5 KB
timeit.py -rwxr-xr-x 13.1 KB
token.py -rw-r--r-- 2.3 KB
tokenize.py -rw-r--r-- 25.2 KB
trace.py -rwxr-xr-x 28.5 KB
traceback.py -rw-r--r-- 23.0 KB
tracemalloc.py -rw-r--r-- 17.6 KB
tty.py -rw-r--r-- 879 bytes
turtle.py -rw-r--r-- 140.2 KB
types.py -rw-r--r-- 9.5 KB
typing.py -rw-r--r-- 70.6 KB
uu.py -rwxr-xr-x 6.8 KB
uuid.py -rw-r--r-- 31.8 KB
warnings.py -rw-r--r-- 19.2 KB
wave.py -rw-r--r-- 17.6 KB
weakref.py -rw-r--r-- 19.8 KB
webbrowser.py -rwxr-xr-x 22.9 KB
xdrlib.py -rw-r--r-- 5.8 KB
zipapp.py -rw-r--r-- 7.4 KB
zipfile.py -rw-r--r-- 85.1 KB
zipimport.py -rw-r--r-- 30.0 KB

back to top