X7ROOT File Manager
Current Path:
/opt/hc_python/lib/python3.12/site-packages/greenlet
opt
/
hc_python
/
lib
/
python3.12
/
site-packages
/
greenlet
/
ðŸ“
..
📄
CObjects.cpp
(3.43 KB)
📄
PyGreenlet.cpp
(22.89 KB)
📄
PyGreenlet.hpp
(1.43 KB)
📄
PyGreenletUnswitchable.cpp
(4.27 KB)
📄
PyModule.cpp
(8.39 KB)
📄
TBrokenGreenlet.cpp
(1021 B)
📄
TExceptionState.cpp
(1.33 KB)
📄
TGreenlet.cpp
(25.13 KB)
📄
TGreenlet.hpp
(27.39 KB)
📄
TGreenletGlobals.cpp
(3.19 KB)
📄
TMainGreenlet.cpp
(3.2 KB)
📄
TPythonState.cpp
(15.41 KB)
📄
TStackState.cpp
(7.21 KB)
📄
TThreadState.hpp
(18.68 KB)
📄
TThreadStateCreator.hpp
(2.55 KB)
📄
TThreadStateDestroy.cpp
(7.98 KB)
📄
TUserGreenlet.cpp
(23 KB)
📄
__init__.py
(1.68 KB)
ðŸ“
__pycache__
📄
_greenlet.cpython-312-x86_64-linux-gnu.so
(1.38 MB)
📄
greenlet.cpp
(10.74 KB)
📄
greenlet.h
(4.64 KB)
📄
greenlet_allocator.hpp
(1.54 KB)
📄
greenlet_compiler_compat.hpp
(4.24 KB)
📄
greenlet_cpython_compat.hpp
(3.97 KB)
📄
greenlet_exceptions.hpp
(4.4 KB)
📄
greenlet_internal.hpp
(2.65 KB)
📄
greenlet_refs.hpp
(33.63 KB)
📄
greenlet_slp_switch.hpp
(3.12 KB)
📄
greenlet_thread_support.hpp
(867 B)
ðŸ“
platform
📄
slp_platformselect.h
(3.75 KB)
ðŸ“
tests
Editing: CObjects.cpp
#ifndef COBJECTS_CPP #define COBJECTS_CPP /***************************************************************************** * C interface * * These are exported using the CObject API */ #ifdef __clang__ # pragma clang diagnostic push # pragma clang diagnostic ignored "-Wunused-function" #endif #include "greenlet_exceptions.hpp" #include "greenlet_internal.hpp" #include "greenlet_refs.hpp" #include "TThreadStateDestroy.cpp" #include "PyGreenlet.hpp" using greenlet::PyErrOccurred; using greenlet::Require; extern "C" { static PyGreenlet* PyGreenlet_GetCurrent(void) { return GET_THREAD_STATE().state().get_current().relinquish_ownership(); } static int PyGreenlet_SetParent(PyGreenlet* g, PyGreenlet* nparent) { return green_setparent((PyGreenlet*)g, (PyObject*)nparent, NULL); } static PyGreenlet* PyGreenlet_New(PyObject* run, PyGreenlet* parent) { using greenlet::refs::NewDictReference; // In the past, we didn't use green_new and green_init, but that // was a maintenance issue because we duplicated code. This way is // much safer, but slightly slower. If that's a problem, we could // refactor green_init to separate argument parsing from initialization. OwnedGreenlet g = OwnedGreenlet::consuming(green_new(&PyGreenlet_Type, nullptr, nullptr)); if (!g) { return NULL; } try { NewDictReference kwargs; if (run) { kwargs.SetItem(mod_globs->str_run, run); } if (parent) { kwargs.SetItem("parent", (PyObject*)parent); } Require(green_init(g.borrow(), mod_globs->empty_tuple, kwargs.borrow())); } catch (const PyErrOccurred&) { return nullptr; } return g.relinquish_ownership(); } static PyObject* PyGreenlet_Switch(PyGreenlet* self, PyObject* args, PyObject* kwargs) { if (!PyGreenlet_Check(self)) { PyErr_BadArgument(); return NULL; } if (args == NULL) { args = mod_globs->empty_tuple; } if (kwargs == NULL || !PyDict_Check(kwargs)) { kwargs = NULL; } return green_switch(self, args, kwargs); } static PyObject* PyGreenlet_Throw(PyGreenlet* self, PyObject* typ, PyObject* val, PyObject* tb) { if (!PyGreenlet_Check(self)) { PyErr_BadArgument(); return nullptr; } try { PyErrPieces err_pieces(typ, val, tb); return internal_green_throw(self, err_pieces).relinquish_ownership(); } catch (const PyErrOccurred&) { return nullptr; } } static int Extern_PyGreenlet_MAIN(PyGreenlet* self) { if (!PyGreenlet_Check(self)) { PyErr_BadArgument(); return -1; } return self->pimpl->main(); } static int Extern_PyGreenlet_ACTIVE(PyGreenlet* self) { if (!PyGreenlet_Check(self)) { PyErr_BadArgument(); return -1; } return self->pimpl->active(); } static int Extern_PyGreenlet_STARTED(PyGreenlet* self) { if (!PyGreenlet_Check(self)) { PyErr_BadArgument(); return -1; } return self->pimpl->started(); } static PyGreenlet* Extern_PyGreenlet_GET_PARENT(PyGreenlet* self) { if (!PyGreenlet_Check(self)) { PyErr_BadArgument(); return NULL; } // This can return NULL even if there is no exception return self->pimpl->parent().acquire(); } } // extern C. /** End C API ****************************************************************/ #ifdef __clang__ # pragma clang diagnostic pop #endif #endif
Upload File
Create Folder