mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	
		
			
	
	
		
			33 lines
		
	
	
	
		
			756 B
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
	
		
			756 B
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #ifndef Py_INTERNAL_OBJECT_DEFERRED_H
 | ||
|  | #define Py_INTERNAL_OBJECT_DEFERRED_H
 | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | extern "C" { | ||
|  | #endif
 | ||
|  | 
 | ||
|  | #include "pycore_gc.h"
 | ||
|  | 
 | ||
|  | #ifndef Py_BUILD_CORE
 | ||
|  | #  error "this header requires Py_BUILD_CORE define"
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | // Mark an object as supporting deferred reference counting. This is a no-op
 | ||
|  | // in the default (with GIL) build. Objects that use deferred reference
 | ||
|  | // counting should be tracked by the GC so that they are eventually collected.
 | ||
|  | extern void _PyObject_SetDeferredRefcount(PyObject *op); | ||
|  | 
 | ||
|  | static inline int | ||
|  | _PyObject_HasDeferredRefcount(PyObject *op) | ||
|  | { | ||
|  | #ifdef Py_GIL_DISABLED
 | ||
|  |     return _PyObject_HAS_GC_BITS(op, _PyGC_BITS_DEFERRED); | ||
|  | #else
 | ||
|  |     return 0; | ||
|  | #endif
 | ||
|  | } | ||
|  | 
 | ||
|  | #ifdef __cplusplus
 | ||
|  | } | ||
|  | #endif
 | ||
|  | #endif  // !Py_INTERNAL_OBJECT_DEFERRED_H
 |