1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167
|
/*[clinic input]
preserve
[clinic start generated code]*/
#include "pycore_modsupport.h" // _PyArg_CheckPositional()
#if defined(MS_WINDOWS)
PyDoc_STRVAR(_multiprocessing_closesocket__doc__,
"closesocket($module, handle, /)\n"
"--\n"
"\n");
#define _MULTIPROCESSING_CLOSESOCKET_METHODDEF \
{"closesocket", (PyCFunction)_multiprocessing_closesocket, METH_O, _multiprocessing_closesocket__doc__},
static PyObject *
_multiprocessing_closesocket_impl(PyObject *module, HANDLE handle);
static PyObject *
_multiprocessing_closesocket(PyObject *module, PyObject *arg)
{
PyObject *return_value = NULL;
HANDLE handle;
handle = PyLong_AsVoidPtr(arg);
if (!handle && PyErr_Occurred()) {
goto exit;
}
return_value = _multiprocessing_closesocket_impl(module, handle);
exit:
return return_value;
}
#endif /* defined(MS_WINDOWS) */
#if defined(MS_WINDOWS)
PyDoc_STRVAR(_multiprocessing_recv__doc__,
"recv($module, handle, size, /)\n"
"--\n"
"\n");
#define _MULTIPROCESSING_RECV_METHODDEF \
{"recv", _PyCFunction_CAST(_multiprocessing_recv), METH_FASTCALL, _multiprocessing_recv__doc__},
static PyObject *
_multiprocessing_recv_impl(PyObject *module, HANDLE handle, int size);
static PyObject *
_multiprocessing_recv(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
HANDLE handle;
int size;
if (!_PyArg_CheckPositional("recv", nargs, 2, 2)) {
goto exit;
}
handle = PyLong_AsVoidPtr(args[0]);
if (!handle && PyErr_Occurred()) {
goto exit;
}
size = PyLong_AsInt(args[1]);
if (size == -1 && PyErr_Occurred()) {
goto exit;
}
return_value = _multiprocessing_recv_impl(module, handle, size);
exit:
return return_value;
}
#endif /* defined(MS_WINDOWS) */
#if defined(MS_WINDOWS)
PyDoc_STRVAR(_multiprocessing_send__doc__,
"send($module, handle, buf, /)\n"
"--\n"
"\n");
#define _MULTIPROCESSING_SEND_METHODDEF \
{"send", _PyCFunction_CAST(_multiprocessing_send), METH_FASTCALL, _multiprocessing_send__doc__},
static PyObject *
_multiprocessing_send_impl(PyObject *module, HANDLE handle, Py_buffer *buf);
static PyObject *
_multiprocessing_send(PyObject *module, PyObject *const *args, Py_ssize_t nargs)
{
PyObject *return_value = NULL;
HANDLE handle;
Py_buffer buf = {NULL, NULL};
if (!_PyArg_CheckPositional("send", nargs, 2, 2)) {
goto exit;
}
handle = PyLong_AsVoidPtr(args[0]);
if (!handle && PyErr_Occurred()) {
goto exit;
}
if (PyObject_GetBuffer(args[1], &buf, PyBUF_SIMPLE) != 0) {
goto exit;
}
return_value = _multiprocessing_send_impl(module, handle, &buf);
exit:
/* Cleanup for buf */
if (buf.obj) {
PyBuffer_Release(&buf);
}
return return_value;
}
#endif /* defined(MS_WINDOWS) */
PyDoc_STRVAR(_multiprocessing_sem_unlink__doc__,
"sem_unlink($module, name, /)\n"
"--\n"
"\n");
#define _MULTIPROCESSING_SEM_UNLINK_METHODDEF \
{"sem_unlink", (PyCFunction)_multiprocessing_sem_unlink, METH_O, _multiprocessing_sem_unlink__doc__},
static PyObject *
_multiprocessing_sem_unlink_impl(PyObject *module, const char *name);
static PyObject *
_multiprocessing_sem_unlink(PyObject *module, PyObject *arg)
{
PyObject *return_value = NULL;
const char *name;
if (!PyUnicode_Check(arg)) {
_PyArg_BadArgument("sem_unlink", "argument", "str", arg);
goto exit;
}
Py_ssize_t name_length;
name = PyUnicode_AsUTF8AndSize(arg, &name_length);
if (name == NULL) {
goto exit;
}
if (strlen(name) != (size_t)name_length) {
PyErr_SetString(PyExc_ValueError, "embedded null character");
goto exit;
}
return_value = _multiprocessing_sem_unlink_impl(module, name);
exit:
return return_value;
}
#ifndef _MULTIPROCESSING_CLOSESOCKET_METHODDEF
#define _MULTIPROCESSING_CLOSESOCKET_METHODDEF
#endif /* !defined(_MULTIPROCESSING_CLOSESOCKET_METHODDEF) */
#ifndef _MULTIPROCESSING_RECV_METHODDEF
#define _MULTIPROCESSING_RECV_METHODDEF
#endif /* !defined(_MULTIPROCESSING_RECV_METHODDEF) */
#ifndef _MULTIPROCESSING_SEND_METHODDEF
#define _MULTIPROCESSING_SEND_METHODDEF
#endif /* !defined(_MULTIPROCESSING_SEND_METHODDEF) */
/*[clinic end generated code: output=73b4cb8428d816da input=a9049054013a1b77]*/
|