Current Path: > > opt > hc_python > > lib > python3.12 > > site-packages > greenlet >
Operation : Linux premium131.web-hosting.com 4.18.0-553.44.1.lve.el8.x86_64 #1 SMP Thu Mar 13 14:29:12 UTC 2025 x86_64 Software : Apache Server IP : 162.0.232.56 | Your IP: 216.73.216.111 Domains : 1034 Domain(s) Permission : [ 0755 ]
Name | Type | Size | Last Modified | Actions |
---|---|---|---|---|
__pycache__ | Directory | - | - | |
platform | Directory | - | - | |
tests | Directory | - | - | |
CObjects.cpp | File | 3508 bytes | May 23 2025 10:34:46. | |
PyGreenlet.cpp | File | 23441 bytes | May 23 2025 10:34:46. | |
PyGreenlet.hpp | File | 1463 bytes | May 23 2025 10:34:46. | |
PyGreenletUnswitchable.cpp | File | 4375 bytes | May 23 2025 10:34:46. | |
PyModule.cpp | File | 8587 bytes | May 23 2025 10:34:46. | |
TBrokenGreenlet.cpp | File | 1021 bytes | May 23 2025 10:34:46. | |
TExceptionState.cpp | File | 1359 bytes | May 23 2025 10:34:46. | |
TGreenlet.cpp | File | 25731 bytes | May 23 2025 10:34:46. | |
TGreenlet.hpp | File | 28043 bytes | May 23 2025 10:34:46. | |
TGreenletGlobals.cpp | File | 3264 bytes | May 23 2025 10:34:46. | |
TMainGreenlet.cpp | File | 3276 bytes | May 23 2025 10:34:46. | |
TPythonState.cpp | File | 15779 bytes | May 23 2025 10:34:46. | |
TStackState.cpp | File | 7381 bytes | May 23 2025 10:34:46. | |
TThreadState.hpp | File | 19131 bytes | May 23 2025 10:34:46. | |
TThreadStateCreator.hpp | File | 2610 bytes | May 23 2025 10:34:46. | |
TThreadStateDestroy.cpp | File | 8169 bytes | May 23 2025 10:34:46. | |
TUserGreenlet.cpp | File | 23553 bytes | May 23 2025 10:34:46. | |
__init__.py | File | 1723 bytes | May 23 2025 10:34:46. | |
_greenlet.cpython-312-x86_64-linux-gnu.so | File | 1446128 bytes | May 23 2025 10:34:46. | |
greenlet.cpp | File | 10996 bytes | May 23 2025 10:34:46. | |
greenlet.h | File | 4755 bytes | May 23 2025 10:34:46. | |
greenlet_allocator.hpp | File | 1582 bytes | May 23 2025 10:34:46. | |
greenlet_compiler_compat.hpp | File | 4346 bytes | May 23 2025 10:34:46. | |
greenlet_cpython_compat.hpp | File | 4068 bytes | May 23 2025 10:34:46. | |
greenlet_exceptions.hpp | File | 4503 bytes | May 23 2025 10:34:46. | |
greenlet_internal.hpp | File | 2709 bytes | May 23 2025 10:34:46. | |
greenlet_refs.hpp | File | 34436 bytes | May 23 2025 10:34:46. | |
greenlet_slp_switch.hpp | File | 3198 bytes | May 23 2025 10:34:46. | |
greenlet_thread_support.hpp | File | 867 bytes | May 23 2025 10:34:46. | |
slp_platformselect.h | File | 3841 bytes | May 23 2025 10:34:46. |
/* -*- indent-tabs-mode: nil; tab-width: 4; -*- */ /** Implementation of the Python slots for PyGreenletUnswitchable_Type */ #ifndef PY_GREENLET_UNSWITCHABLE_CPP #define PY_GREENLET_UNSWITCHABLE_CPP #define PY_SSIZE_T_CLEAN #include <Python.h> #include "structmember.h" // PyMemberDef #include "greenlet_internal.hpp" // Code after this point can assume access to things declared in stdint.h, // including the fixed-width types. This goes for the platform-specific switch functions // as well. #include "greenlet_refs.hpp" #include "greenlet_slp_switch.hpp" #include "greenlet_thread_support.hpp" #include "TGreenlet.hpp" #include "TGreenlet.cpp" #include "TGreenletGlobals.cpp" #include "TThreadStateDestroy.cpp" using greenlet::LockGuard; using greenlet::LockInitError; using greenlet::PyErrOccurred; using greenlet::Require; using greenlet::g_handle_exit; using greenlet::single_result; using greenlet::Greenlet; using greenlet::UserGreenlet; using greenlet::MainGreenlet; using greenlet::BrokenGreenlet; using greenlet::ThreadState; using greenlet::PythonState; #include "PyGreenlet.hpp" static PyGreenlet* green_unswitchable_new(PyTypeObject* type, PyObject* UNUSED(args), PyObject* UNUSED(kwds)) { PyGreenlet* o = (PyGreenlet*)PyBaseObject_Type.tp_new(type, mod_globs->empty_tuple, mod_globs->empty_dict); if (o) { new BrokenGreenlet(o, GET_THREAD_STATE().state().borrow_current()); assert(Py_REFCNT(o) == 1); } return o; } static PyObject* green_unswitchable_getforce(PyGreenlet* self, void* UNUSED(context)) { BrokenGreenlet* broken = dynamic_cast<BrokenGreenlet*>(self->pimpl); return PyBool_FromLong(broken->_force_switch_error); } static int green_unswitchable_setforce(PyGreenlet* self, PyObject* nforce, void* UNUSED(context)) { if (!nforce) { PyErr_SetString( PyExc_AttributeError, "Cannot delete force_switch_error" ); return -1; } BrokenGreenlet* broken = dynamic_cast<BrokenGreenlet*>(self->pimpl); int is_true = PyObject_IsTrue(nforce); if (is_true == -1) { return -1; } broken->_force_switch_error = is_true; return 0; } static PyObject* green_unswitchable_getforceslp(PyGreenlet* self, void* UNUSED(context)) { BrokenGreenlet* broken = dynamic_cast<BrokenGreenlet*>(self->pimpl); return PyBool_FromLong(broken->_force_slp_switch_error); } static int green_unswitchable_setforceslp(PyGreenlet* self, PyObject* nforce, void* UNUSED(context)) { if (!nforce) { PyErr_SetString( PyExc_AttributeError, "Cannot delete force_slp_switch_error" ); return -1; } BrokenGreenlet* broken = dynamic_cast<BrokenGreenlet*>(self->pimpl); int is_true = PyObject_IsTrue(nforce); if (is_true == -1) { return -1; } broken->_force_slp_switch_error = is_true; return 0; } static PyGetSetDef green_unswitchable_getsets[] = { /* name, getter, setter, doc, closure (context pointer) */ { .name="force_switch_error", .get=(getter)green_unswitchable_getforce, .set=(setter)green_unswitchable_setforce, .doc=NULL }, { .name="force_slp_switch_error", .get=(getter)green_unswitchable_getforceslp, .set=(setter)green_unswitchable_setforceslp, .doc=nullptr }, {.name=nullptr} }; PyTypeObject PyGreenletUnswitchable_Type = { .ob_base=PyVarObject_HEAD_INIT(NULL, 0) .tp_name="greenlet._greenlet.UnswitchableGreenlet", .tp_dealloc= (destructor)green_dealloc, /* tp_dealloc */ .tp_flags=G_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ .tp_doc="Undocumented internal class", /* tp_doc */ .tp_traverse=(traverseproc)green_traverse, /* tp_traverse */ .tp_clear=(inquiry)green_clear, /* tp_clear */ .tp_getset=green_unswitchable_getsets, /* tp_getset */ .tp_base=&PyGreenlet_Type, /* tp_base */ .tp_init=(initproc)green_init, /* tp_init */ .tp_alloc=PyType_GenericAlloc, /* tp_alloc */ .tp_new=(newfunc)green_unswitchable_new, /* tp_new */ .tp_free=PyObject_GC_Del, /* tp_free */ .tp_is_gc=(inquiry)green_is_gc, /* tp_is_gc */ }; #endif
SILENT KILLER Tool