Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork33.7k
Description
_PyWeakref_ClearRef was previouslyexposed in the public C-API. In 3.13, it was moved topycore_weakref.h and the symbol is not exposed (i.e., it'sextern void instead ofPyAPI_FUNC(void).
_PyWeakref_ClearRef is used to clear a single weakref without calling its callback._PyWeakref_ClearWeakRefsExceptCallbacks is the thread-safe version. If people are using_PyWeakref_ClearRef, we'd rather they use_PyWeakref_ClearWeakRefsExceptCallbacks so that the code is thread-safe in the free-threading build.
One use case is to clear newly added weakrefs after you've called a finalizer, in case your C type does not delegate to subtype_dealloc.
Uses:
At a minimum, we should addPyAPI_FUNC to_PyWeakref_ClearRef and_PyWeakref_ClearWeakRefsExceptCallbacks and consider making_PyWeakref_ClearWeakRefsExceptCallbacks part of the public C API.