mirror of https://github.com/python/cpython
e8752d7b80
This exposes `PyUnstable_Object_ClearWeakRefsNoCallbacks` as an unstable C-API function to provide a thread-safe mechanism for clearing weakrefs without executing callbacks. Some C-API extensions need to clear weakrefs without calling callbacks, such as after running finalizers like we do in subtype_dealloc. Previously they could use `_PyWeakref_ClearRef` on each weakref, but that's not thread-safe in the free-threaded build. Co-authored-by: Petr Viktorin <encukou@gmail.com> |
||
---|---|---|
.. | ||
clinic | ||
README.txt | ||
abstract.c | ||
buffer.c | ||
bytes.c | ||
code.c | ||
codec.c | ||
complex.c | ||
datetime.c | ||
dict.c | ||
docstring.c | ||
exceptions.c | ||
file.c | ||
float.c | ||
gc.c | ||
getargs.c | ||
hash.c | ||
heaptype.c | ||
immortal.c | ||
list.c | ||
long.c | ||
mem.c | ||
monitoring.c | ||
numbers.c | ||
object.c | ||
parts.h | ||
pyatomic.c | ||
run.c | ||
set.c | ||
structmember.c | ||
time.c | ||
tuple.c | ||
unicode.c | ||
util.h | ||
vectorcall.c | ||
watchers.c |
README.txt
Tests in this directory are compiled into the _testcapi extension. The main file for the extension is Modules/_testcapimodule.c, which calls `_PyTestCapi_Init_*` from these functions. General guideline when writing test code for C API. * Use Argument Clinic to minimise the amount of boilerplate code. * Add a newline between the argument spec and the docstring. * If a test description is needed, make sure the added docstring clearly and succinctly describes purpose of the function. * DRY, use the clone feature of Argument Clinic. * Try to avoid adding new interned strings; reuse existing parameter names if possible. Use the `as` feature of Argument Clinic to override the C variable name, if needed.