Psyduck - 可達鴨 之 鴨力山大2


Server : LiteSpeed
System : Linux premium217.web-hosting.com 4.18.0-553.54.1.lve.el8.x86_64 #1 SMP Wed Jun 4 13:01:13 UTC 2025 x86_64
User : alloknri ( 880)
PHP Version : 8.1.34
Disable Function : NONE
Directory :  /opt/alt/python39/include/python3.9/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //opt/alt/python39/include/python3.9/pystate.h
/* Thread and interpreter state structures and their interfaces */


#ifndef Py_PYSTATE_H
#define Py_PYSTATE_H
#ifdef __cplusplus
extern "C" {
#endif

/* This limitation is for performance and simplicity. If needed it can be
removed (with effort). */
#define MAX_CO_EXTRA_USERS 255

/* Forward declarations for PyFrameObject, PyThreadState
   and PyInterpreterState */
struct _ts;
struct _is;

/* struct _ts is defined in cpython/pystate.h */
typedef struct _ts PyThreadState;
/* struct _is is defined in internal/pycore_interp.h */
typedef struct _is PyInterpreterState;

PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_New(void);
PyAPI_FUNC(void) PyInterpreterState_Clear(PyInterpreterState *);
PyAPI_FUNC(void) PyInterpreterState_Delete(PyInterpreterState *);

#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
/* New in 3.9 */
/* Get the current interpreter state.

   Issue a fatal error if there no current Python thread state or no current
   interpreter. It cannot return NULL.

   The caller must hold the GIL. */
PyAPI_FUNC(PyInterpreterState *) PyInterpreterState_Get(void);
#endif

#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03080000
/* New in 3.8 */
PyAPI_FUNC(PyObject *) PyInterpreterState_GetDict(PyInterpreterState *);
#endif

#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03070000
/* New in 3.7 */
PyAPI_FUNC(int64_t) PyInterpreterState_GetID(PyInterpreterState *);
#endif
#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03030000

/* State unique per thread */

/* New in 3.3 */
PyAPI_FUNC(int) PyState_AddModule(PyObject*, struct PyModuleDef*);
PyAPI_FUNC(int) PyState_RemoveModule(struct PyModuleDef*);
#endif
PyAPI_FUNC(PyObject*) PyState_FindModule(struct PyModuleDef*);

PyAPI_FUNC(PyThreadState *) PyThreadState_New(PyInterpreterState *);
PyAPI_FUNC(void) PyThreadState_Clear(PyThreadState *);
PyAPI_FUNC(void) PyThreadState_Delete(PyThreadState *);

/* Get the current thread state.

   When the current thread state is NULL, this issues a fatal error (so that
   the caller needn't check for NULL).

   The caller must hold the GIL.

   See also PyThreadState_GET() and _PyThreadState_GET(). */
PyAPI_FUNC(PyThreadState *) PyThreadState_Get(void);

/* Get the current Python thread state.

   Macro using PyThreadState_Get() or _PyThreadState_GET() depending if
   pycore_pystate.h is included or not (this header redefines the macro).

   If PyThreadState_Get() is used, issue a fatal error if the current thread
   state is NULL.

   See also PyThreadState_Get() and _PyThreadState_GET(). */
#define PyThreadState_GET() PyThreadState_Get()

PyAPI_FUNC(PyThreadState *) PyThreadState_Swap(PyThreadState *);
PyAPI_FUNC(PyObject *) PyThreadState_GetDict(void);
PyAPI_FUNC(int) PyThreadState_SetAsyncExc(unsigned long, PyObject *);

#if !defined(Py_LIMITED_API) || Py_LIMITED_API+0 >= 0x03090000
/* New in 3.9 */
PyAPI_FUNC(PyInterpreterState*) PyThreadState_GetInterpreter(PyThreadState *tstate);
PyAPI_FUNC(PyFrameObject*) PyThreadState_GetFrame(PyThreadState *tstate);
PyAPI_FUNC(uint64_t) PyThreadState_GetID(PyThreadState *tstate);
#endif

typedef
    enum {PyGILState_LOCKED, PyGILState_UNLOCKED}
        PyGILState_STATE;


/* Ensure that the current thread is ready to call the Python
   C API, regardless of the current state of Python, or of its
   thread lock.  This may be called as many times as desired
   by a thread so long as each call is matched with a call to
   PyGILState_Release().  In general, other thread-state APIs may
   be used between _Ensure() and _Release() calls, so long as the
   thread-state is restored to its previous state before the Release().
   For example, normal use of the Py_BEGIN_ALLOW_THREADS/
   Py_END_ALLOW_THREADS macros are acceptable.

   The return value is an opaque "handle" to the thread state when
   PyGILState_Ensure() was called, and must be passed to
   PyGILState_Release() to ensure Python is left in the same state. Even
   though recursive calls are allowed, these handles can *not* be shared -
   each unique call to PyGILState_Ensure must save the handle for its
   call to PyGILState_Release.

   When the function returns, the current thread will hold the GIL.

   Failure is a fatal error.
*/
PyAPI_FUNC(PyGILState_STATE) PyGILState_Ensure(void);

/* Release any resources previously acquired.  After this call, Python's
   state will be the same as it was prior to the corresponding
   PyGILState_Ensure() call (but generally this state will be unknown to
   the caller, hence the use of the GILState API.)

   Every call to PyGILState_Ensure must be matched by a call to
   PyGILState_Release on the same thread.
*/
PyAPI_FUNC(void) PyGILState_Release(PyGILState_STATE);

/* Helper/diagnostic function - get the current thread state for
   this thread.  May return NULL if no GILState API has been used
   on the current thread.  Note that the main thread always has such a
   thread-state, even if no auto-thread-state call has been made
   on the main thread.
*/
PyAPI_FUNC(PyThreadState *) PyGILState_GetThisThreadState(void);


#ifndef Py_LIMITED_API
#  define Py_CPYTHON_PYSTATE_H
#  include  "cpython/pystate.h"
#  undef Py_CPYTHON_PYSTATE_H
#endif

#ifdef __cplusplus
}
#endif
#endif /* !Py_PYSTATE_H */
Name
Size
Permissions
Options
cpython
--
drwxr-xr-x
internal
--
drwxr-xr-x
Python-ast.h
25.579 KB
-rw-r--r--
Python.h
3.449 KB
-rw-r--r--
abstract.h
29.762 KB
-rw-r--r--
asdl.h
1.195 KB
-rw-r--r--
ast.h
0.925 KB
-rw-r--r--
bitset.h
0.457 KB
-rw-r--r--
bltinmodule.h
0.258 KB
-rw-r--r--
boolobject.h
0.864 KB
-rw-r--r--
bytearrayobject.h
1.449 KB
-rw-r--r--
bytesobject.h
2.977 KB
-rw-r--r--
cellobject.h
0.695 KB
-rw-r--r--
ceval.h
5.814 KB
-rw-r--r--
classobject.h
1.618 KB
-rw-r--r--
code.h
0.311 KB
-rw-r--r--
codecs.h
6.634 KB
-rw-r--r--
compile.h
3.689 KB
-rw-r--r--
complexobject.h
1.764 KB
-rw-r--r--
context.h
1.916 KB
-rw-r--r--
datetime.h
9.038 KB
-rw-r--r--
descrobject.h
2.948 KB
-rw-r--r--
dictobject.h
3.628 KB
-rw-r--r--
dynamic_annotations.h
21.942 KB
-rw-r--r--
enumobject.h
0.247 KB
-rw-r--r--
errcode.h
1.586 KB
-rw-r--r--
eval.h
1.181 KB
-rw-r--r--
exports.h
1.072 KB
-rw-r--r--
fileobject.h
1.534 KB
-rw-r--r--
fileutils.h
0.583 KB
-rw-r--r--
floatobject.h
4.258 KB
-rw-r--r--
frameobject.h
0.329 KB
-rw-r--r--
funcobject.h
3.962 KB
-rw-r--r--
genericaliasobject.h
0.326 KB
-rw-r--r--
genobject.h
3.442 KB
-rw-r--r--
graminit.h
2.068 KB
-rw-r--r--
grammar.h
1.778 KB
-rw-r--r--
import.h
2.955 KB
-rw-r--r--
interpreteridobject.h
0.326 KB
-rw-r--r--
intrcheck.h
0.841 KB
-rw-r--r--
iterobject.h
0.509 KB
-rw-r--r--
listobject.h
1.739 KB
-rw-r--r--
longintrepr.h
3.71 KB
-rw-r--r--
longobject.h
9.29 KB
-rw-r--r--
marshal.h
0.784 KB
-rw-r--r--
memoryobject.h
2.699 KB
-rw-r--r--
methodobject.h
3.687 KB
-rw-r--r--
modsupport.h
9.726 KB
-rw-r--r--
moduleobject.h
2.306 KB
-rw-r--r--
namespaceobject.h
0.341 KB
-rw-r--r--
node.h
1.251 KB
-rw-r--r--
object.h
24.051 KB
-rw-r--r--
objimpl.h
8.226 KB
-rw-r--r--
odictobject.h
1.269 KB
-rw-r--r--
opcode.h
4.785 KB
-rw-r--r--
osdefs.h
0.72 KB
-rw-r--r--
osmodule.h
0.284 KB
-rw-r--r--
parsetok.h
2.889 KB
-rw-r--r--
patchlevel.h
1.269 KB
-rw-r--r--
picklebufobject.h
0.826 KB
-rw-r--r--
py_curses.h
2.416 KB
-rw-r--r--
pyarena.h
2.68 KB
-rw-r--r--
pycapsule.h
1.685 KB
-rw-r--r--
pyconfig-64.h
46.879 KB
-rw-r--r--
pyconfig.h
0.158 KB
-rw-r--r--
pyctype.h
1.354 KB
-rw-r--r--
pydebug.h
1.067 KB
-rw-r--r--
pydtrace.h
2.356 KB
-rw-r--r--
pyerrors.h
12.136 KB
-rw-r--r--
pyexpat.h
2.512 KB
-rw-r--r--
pyfpe.h
0.434 KB
-rw-r--r--
pyframe.h
0.455 KB
-rw-r--r--
pyhash.h
4.163 KB
-rw-r--r--
pylifecycle.h
2.086 KB
-rw-r--r--
pymacconfig.h
2.919 KB
-rw-r--r--
pymacro.h
4.805 KB
-rw-r--r--
pymath.h
8.379 KB
-rw-r--r--
pymem.h
4.303 KB
-rw-r--r--
pyport.h
30.54 KB
-rw-r--r--
pystate.h
5.127 KB
-rw-r--r--
pystrcmp.h
0.426 KB
-rw-r--r--
pystrhex.h
0.829 KB
-rw-r--r--
pystrtod.h
1.448 KB
-rw-r--r--
pythonrun.h
7.493 KB
-rw-r--r--
pythread.h
5.799 KB
-rw-r--r--
pytime.h
8.719 KB
-rw-r--r--
rangeobject.h
0.613 KB
-rw-r--r--
setobject.h
3.246 KB
-rw-r--r--
sliceobject.h
2.457 KB
-rw-r--r--
structmember.h
1.982 KB
-rw-r--r--
structseq.h
1.357 KB
-rw-r--r--
symtable.h
5.183 KB
-rw-r--r--
sysmodule.h
1.213 KB
-rw-r--r--
token.h
2.58 KB
-rw-r--r--
traceback.h
0.57 KB
-rw-r--r--
tracemalloc.h
1.088 KB
-rw-r--r--
tupleobject.h
1.576 KB
-rw-r--r--
typeslots.h
2.295 KB
-rw-r--r--
ucnhash.h
1.031 KB
-rw-r--r--
unicodeobject.h
34.596 KB
-rw-r--r--
warnings.h
1.734 KB
-rw-r--r--
weakrefobject.h
2.796 KB
-rw-r--r--