summaryrefslogtreecommitdiff
path: root/Python/formatter_unicode.c
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2020-03-20 14:50:35 +0100
committerGitHub <noreply@github.com>2020-03-20 14:50:35 +0100
commitd83168854e19d0381fa57db25fca6c622917624f (patch)
treeb282c1b565d7ad97f789683dac78c2dfc767027f /Python/formatter_unicode.c
parentd2a8e5b42c5e9c4e745a0589043a8aebb49f8ca2 (diff)
downloadcpython-git-d83168854e19d0381fa57db25fca6c622917624f.tar.gz
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.
Diffstat (limited to 'Python/formatter_unicode.c')
0 files changed, 0 insertions, 0 deletions