MCPcopy Create free account
hub / github.com/dgrunwald/rust-cpython / Py_TRASHCAN

Function Py_TRASHCAN

python27-sys/src/object.rs:874–890  ·  view source on GitHub ↗
(op: *mut PyObject, body: F)

Source from the content-addressed store, hash-verified

872
873#[inline(always)]
874pub unsafe fn Py_TRASHCAN<F: FnOnce() -> ()>(op: *mut PyObject, body: F) {
875 let tstate = crate::pystate::PyThreadState_GET();
876 if tstate.is_null() || (*tstate).trash_delete_nesting < PyTrash_UNWIND_LEVEL {
877 if !tstate.is_null() {
878 (*tstate).trash_delete_nesting += 1;
879 }
880 body();
881 if !tstate.is_null() {
882 (*tstate).trash_delete_nesting -= 1;
883 if !(*tstate).trash_delete_later.is_null() && (*tstate).trash_delete_nesting <= 0 {
884 _PyTrash_thread_destroy_chain();
885 }
886 }
887 } else {
888 _PyTrash_thread_deposit_object(op)
889 }
890}

Callers

nothing calls this directly

Calls 1

PyThreadState_GETFunction · 0.70

Tested by

no test coverage detected