cpython/Python
Victor Stinner d83168854e
bpo-40010: Optimize pending calls in multithreaded applications (GH-19091)
If a thread different than the main thread schedules a pending call
(Py_AddPendingCall()), the bytecode evaluation loop is no longer
interrupted at each bytecode instruction to check for pending calls
which cannot be executed. Only the main thread can execute pending
calls.

Previously, the bytecode evaluation loop was interrupted at each
instruction until the main thread executes pending calls.

* Add _Py_ThreadCanHandlePendingCalls() function.
* SIGNAL_PENDING_CALLS() now only sets eval_breaker to 1 if the
  current thread can execute pending calls. Only the main thread can
  execute pending calls.
2020-03-20 14:50:35 +01:00
..
clinic bpo-39489: Remove COUNT_ALLOCS special build (GH-18259) 2020-02-03 15:17:15 +01:00
_warnings.c bpo-39585: Delete a pending comment in _warning.c (GH-18414) 2020-03-14 15:40:58 +02:00
asdl.c
ast.c bpo-40000: Improve error messages when validating invalid ast.Constant nodes (GH-19055) 2020-03-19 11:32:28 +00:00
ast_opt.c bpo-39220: Do not optimise annotation if 'from __future__ import annotations' is used (GH-17866) 2020-03-18 23:02:09 +00:00
ast_unparse.c bpo-34822: Simplify AST for subscription. (GH-9605) 2020-03-10 18:52:34 +02:00
bltinmodule.c bpo-39245: Switch to public API for Vectorcall (GH-18460) 2020-02-11 17:46:57 +01:00
bootstrap_hash.c Fix typos in comments, docs and test names (#15018) 2019-07-30 18:16:13 -04:00
ceval.c bpo-40010: Optimize pending calls in multithreaded applications (GH-19091) 2020-03-20 14:50:35 +01:00
ceval_gil.h bpo-40010: Pass tstate to ceval GIL functions (GH-19077) 2020-03-20 09:29:08 +01:00
codecs.c bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978) 2020-03-13 18:03:56 +01:00
compile.c bpo-39562: Allow executing asynchronous comprehensions in the asyncio REPL (GH-18968) 2020-03-19 11:35:44 +00:00
condvar.h Typo fix: "throuhgh" should be "through". (GH-16704) 2019-10-10 20:43:13 -07:00
context.c bpo-38979: fix ContextVar "__class_getitem__" method (GH-17497) 2019-12-08 03:35:59 -08:00
dtoa.c bpo-35081: Move dtoa.h header to the internal C API (GH-18489) 2020-02-12 22:54:42 +01:00
dup2.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
dynamic_annotations.c bpo-32241: Add the const qualifire to declarations of umodifiable strings. (#4748) 2017-12-12 13:55:04 +02:00
dynload_aix.c bpo-37752: Delete redundant Py_CHARMASK in normalizestring() (GH-15095) 2019-09-10 17:04:08 +01:00
dynload_dl.c
dynload_hpux.c bpo-36900: Fix compilation on HP-UX (GH-13614) 2019-05-28 12:24:00 +02:00
dynload_shlib.c bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978) 2020-03-13 18:03:56 +01:00
dynload_stub.c
dynload_win.c bpo-39553: Delete HAVE_SXS protected code (GH-18356) 2020-02-04 19:13:00 -08:00
errors.c bpo-39573: Use Py_IS_TYPE() macro to check for types (GH-18809) 2020-03-06 23:53:17 +01:00
fileutils.c bpo-38353: Add subfunctions to getpath.c (GH-16572) 2019-10-04 02:22:39 +02:00
formatter_unicode.c bpo-38249: Expand Py_UNREACHABLE() to __builtin_unreachable() in the release mode. (GH-16329) 2020-03-09 20:49:52 +02:00
frozen.c bpo-36540: PEP 570 -- Implementation (GH-12701) 2019-04-29 13:36:57 +01:00
frozenmain.c bpo-38304: PyConfig_InitPythonConfig() cannot fail anymore (GH-16509) 2019-10-01 12:06:16 +02:00
future.c bpo-34683: Make SyntaxError column offsets consistently 1-indexed (gh-9338) 2018-09-24 14:12:49 -07:00
getargs.c bpo-37207: Add _PyArg_NoKwnames() helper function (GH-18980) 2020-03-16 15:06:20 +01:00
getcompiler.c
getcopyright.c Bring Python into the next decade. (GH-17801) 2020-01-02 18:56:34 -08:00
getopt.c Delete stale comment in Python/getopt.c. (GH-14719) 2019-08-19 18:35:13 -07:00
getplatform.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
getversion.c bpo-32150: Expand tabs to spaces in C files. (#4583) 2017-11-28 17:56:10 +02:00
graminit.c bpo-39702: Relax grammar restrictions on decorators (PEP 614) (GH-18570) 2020-03-03 14:25:44 -08:00
hamt.c bpo-39573: Clean up modules and headers to use Py_IS_TYPE() function (GH-18521) 2020-02-17 11:09:15 +01:00
import.c bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978) 2020-03-13 18:03:56 +01:00
importdl.c bpo-39573: Finish converting to new Py_IS_TYPE() macro (GH-18601) 2020-03-04 14:15:20 +01:00
importdl.h
importlib.h bpo-39987: Simplify setting lineno in the compiler. (GH-19037) 2020-03-17 18:07:30 +02:00
importlib_external.h bpo-39987: Simplify setting lineno in the compiler. (GH-19037) 2020-03-17 18:07:30 +02:00
importlib_zipimport.h bpo-39987: Simplify setting lineno in the compiler. (GH-19037) 2020-03-17 18:07:30 +02:00
initconfig.c bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978) 2020-03-13 18:03:56 +01:00
makeopcodetargets.py
marshal.c closes bpo-39605: Fix some casts to not cast away const. (GH-18453) 2020-02-11 18:28:35 -08:00
modsupport.c bpo-38913: Fix segfault in Py_BuildValue("(s#O)", ...) if entered with exception raised. (GH-18656) 2020-03-02 08:42:39 +02:00
mysnprintf.c
mystrtoul.c bpo-37752: Delete redundant Py_CHARMASK in normalizestring() (GH-15095) 2019-09-10 17:04:08 +01:00
opcode_targets.h bpo-39320: Handle unpacking of **values in compiler (GH-18141) 2020-01-27 09:57:45 +00:00
pathconfig.c bpo-39882: Py_FatalError() logs the function name (GH-18819) 2020-03-07 00:54:20 +01:00
peephole.c bpo-38249: Expand Py_UNREACHABLE() to __builtin_unreachable() in the release mode. (GH-16329) 2020-03-09 20:49:52 +02:00
preconfig.c bpo-38304: Remove PyConfig.struct_size (GH-16500) (GH-16508) 2019-10-01 10:56:37 +02:00
pyarena.c bpo-36254: Fix invalid uses of %d in format strings in C. (GH-12264) 2019-03-13 22:59:55 +02:00
pyctype.c
pyfpe.c bpo-29137: Remove fpectl module (#4789) 2018-01-05 23:15:34 -08:00
pyhash.c closes bpo-39605: Fix some casts to not cast away const. (GH-18453) 2020-02-11 18:28:35 -08:00
pylifecycle.c bpo-39984: Move pending calls to PyInterpreterState (GH-19066) 2020-03-19 02:41:21 +01:00
pymath.c bpo-31031: Unify duplicate bits_in_digit and bit_length (GH-2866) 2020-01-16 15:09:19 +01:00
pystate.c bpo-40010: COMPUTE_EVAL_BREAKER() checks for subinterpreter (GH-19087) 2020-03-20 13:38:58 +01:00
pystrcmp.c
pystrhex.c Fix unused variable and signed/unsigned warnings (GH-15537) 2019-08-27 09:55:13 -07:00
pystrtod.c bpo-35081: Move dtoa.h header to the internal C API (GH-18489) 2020-02-12 22:54:42 +01:00
Python-ast.c bpo-39988: Remove ast.AugLoad and ast.AugStore node classes. (GH-19038) 2020-03-17 23:41:08 +02:00
pythonrun.c bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978) 2020-03-13 18:03:56 +01:00
pytime.c bpo-38249: Expand Py_UNREACHABLE() to __builtin_unreachable() in the release mode. (GH-16329) 2020-03-09 20:49:52 +02:00
README
strdup.c bpo-36623: Clean parser headers and include files (GH-12253) 2019-04-13 17:05:14 +01:00
structmember.c
symtable.c bpo-34822: Simplify AST for subscription. (GH-9605) 2020-03-10 18:52:34 +02:00
sysmodule.c bpo-35370: Add _PyEval_SetTrace() function (GH-18975) 2020-03-13 16:39:12 +01:00
thread.c bpo-39947: Use _PyInterpreterState_GET_UNSAFE() (GH-18978) 2020-03-13 18:03:56 +01:00
thread_nt.h bpo-39847: EnterNonRecursiveMutex() uses GetTickCount64() (GH-18780) 2020-03-12 00:39:02 +01:00
thread_pthread.h bpo-38852: Set thread stack size to 8 Mb for debug builds on android platforms (GH-17337) 2019-12-08 08:40:14 +01:00
traceback.c bpo-38070: _Py_DumpTraceback() writes <no Python frame> (GH-16244) 2019-09-17 23:36:16 +02:00
wordcode_helpers.h

Miscellaneous source files for the main Python shared library