diff options
author | Pieter Eendebak <pieter.eendebak@gmail.com> | 2024-12-11 15:06:07 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-11 15:06:07 (GMT) |
commit | b0f278ff0551b06191cec01445c577e3b25570da (patch) | |
tree | 4a9117ecb9fbb404229a30536a3ae87ac68f4b2f /.azure-pipelines | |
parent | 5a23994a3dbee43a0b08f5920032f60f38b63071 (diff) | |
download | cpython-b0f278ff0551b06191cec01445c577e3b25570da.zip cpython-b0f278ff0551b06191cec01445c577e3b25570da.tar.gz cpython-b0f278ff0551b06191cec01445c577e3b25570da.tar.bz2 |
gh-127065: Make methodcaller thread-safe and re-entrant (GH-127746)
The function `operator.methodcaller` was not thread-safe since the additional
of the vectorcall method in gh-89013. In the free threading build the issue
is easy to trigger, for the normal build harder.
This makes the `methodcaller` safe by:
* Replacing the lazy initialization with initialization in the constructor.
* Using a stack allocated space for the vectorcall arguments and falling back
to `tp_call` for calls with more than 8 arguments.
Diffstat (limited to '.azure-pipelines')
0 files changed, 0 insertions, 0 deletions