X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fpython-systemd%2Flogin.c;h=43f781922d414056693726702000dd7b70c89d1e;hb=e9174f29c7e3ee45137537b126458718913a3ec5;hp=57dc080215bc4379874f2a36d85f580e3f4c39bc;hpb=7ecec4705c0cacb1446af0eb7a4aee66c00d058f;p=elogind.git diff --git a/src/python-systemd/login.c b/src/python-systemd/login.c index 57dc08021..43f781922 100644 --- a/src/python-systemd/login.c +++ b/src/python-systemd/login.c @@ -140,10 +140,9 @@ typedef struct { } Monitor; static PyTypeObject MonitorType; -static void Monitor_dealloc(Monitor* self) -{ - sd_login_monitor_unref(self->monitor); - Py_TYPE(self)->tp_free((PyObject*)self); +static void Monitor_dealloc(Monitor* self) { + sd_login_monitor_unref(self->monitor); + Py_TYPE(self)->tp_free((PyObject*)self); } PyDoc_STRVAR(Monitor__doc__, @@ -153,13 +152,12 @@ PyDoc_STRVAR(Monitor__doc__, "descriptor which can be integrated in an external event loop.\n" "See man:sd_login_monitor_new(3) for the details about what\n" "can be monitored."); -static int Monitor_init(Monitor *self, PyObject *args, PyObject *keywds) -{ +static int Monitor_init(Monitor *self, PyObject *args, PyObject *keywds) { const char *category = NULL; int r; static const char* const kwlist[] = {"category", NULL}; - if (!PyArg_ParseTupleAndKeywords(args, keywds, "|z", (char**) kwlist, + if (!PyArg_ParseTupleAndKeywords(args, keywds, "|z:__init__", (char**) kwlist, &category)) return -1; @@ -175,8 +173,7 @@ PyDoc_STRVAR(Monitor_fileno__doc__, "fileno() -> int\n\n" "Get a file descriptor to poll for events.\n" "This method wraps sd_login_monitor_get_fd(3)."); -static PyObject* Monitor_fileno(Monitor *self, PyObject *args) -{ +static PyObject* Monitor_fileno(Monitor *self, PyObject *args) { int fd = sd_login_monitor_get_fd(self->monitor); set_error(fd, NULL, NULL); if (fd < 0) @@ -190,13 +187,12 @@ PyDoc_STRVAR(Monitor_get_events__doc__, "Returns a mask of poll() events to wait for on the file\n" "descriptor returned by .fileno().\n\n" "See man:sd_login_monitor_get_events(3) for further discussion."); -static PyObject* Monitor_get_events(Monitor *self, PyObject *args) -{ - int r = sd_login_monitor_get_events(self->monitor); - set_error(r, NULL, NULL); - if (r < 0) - return NULL; - return long_FromLong(r); +static PyObject* Monitor_get_events(Monitor *self, PyObject *args) { + int r = sd_login_monitor_get_events(self->monitor); + set_error(r, NULL, NULL); + if (r < 0) + return NULL; + return long_FromLong(r); } @@ -208,21 +204,20 @@ PyDoc_STRVAR(Monitor_get_timeout__doc__, "The return value must be converted to a relative timeout in\n" "milliseconds if it is to be used as an argument for poll().\n" "See man:sd_login_monitor_get_timeout(3) for further discussion."); -static PyObject* Monitor_get_timeout(Monitor *self, PyObject *args) -{ - int r; - uint64_t t; +static PyObject* Monitor_get_timeout(Monitor *self, PyObject *args) { + int r; + uint64_t t; - r = sd_login_monitor_get_timeout(self->monitor, &t); - set_error(r, NULL, NULL); - if (r < 0) - return NULL; + r = sd_login_monitor_get_timeout(self->monitor, &t); + set_error(r, NULL, NULL); + if (r < 0) + return NULL; - if (t == (uint64_t) -1) - Py_RETURN_NONE; + if (t == (uint64_t) -1) + Py_RETURN_NONE; - assert_cc(sizeof(unsigned long long) == sizeof(t)); - return PyLong_FromUnsignedLongLong(t); + assert_cc(sizeof(unsigned long long) == sizeof(t)); + return PyLong_FromUnsignedLongLong(t); } @@ -231,17 +226,16 @@ PyDoc_STRVAR(Monitor_get_timeout_ms__doc__, "Returns a timeout value suitable for usage in poll(), the value\n" "returned by .get_timeout() converted to relative ms, or -1 if\n" "no timeout is necessary."); -static PyObject* Monitor_get_timeout_ms(Monitor *self, PyObject *args) -{ - int r; - uint64_t t; +static PyObject* Monitor_get_timeout_ms(Monitor *self, PyObject *args) { + int r; + uint64_t t; - r = sd_login_monitor_get_timeout(self->monitor, &t); - set_error(r, NULL, NULL); - if (r < 0) - return NULL; + r = sd_login_monitor_get_timeout(self->monitor, &t); + set_error(r, NULL, NULL); + if (r < 0) + return NULL; - return absolute_timeout(t); + return absolute_timeout(t); } @@ -250,8 +244,7 @@ PyDoc_STRVAR(Monitor_close__doc__, "Free resources allocated by this Monitor object.\n" "This method invokes sd_login_monitor_unref().\n" "See man:sd_login_monitor_unref(3)."); -static PyObject* Monitor_close(Monitor *self, PyObject *args) -{ +static PyObject* Monitor_close(Monitor *self, PyObject *args) { assert(self); assert(!args); @@ -266,12 +259,13 @@ PyDoc_STRVAR(Monitor_flush__doc__, "Reset the wakeup state of the monitor object.\n" "This method invokes sd_login_monitor_flush().\n" "See man:sd_login_monitor_flush(3)."); -static PyObject* Monitor_flush(Monitor *self, PyObject *args) -{ +static PyObject* Monitor_flush(Monitor *self, PyObject *args) { assert(self); assert(!args); + Py_BEGIN_ALLOW_THREADS sd_login_monitor_flush(self->monitor); + Py_END_ALLOW_THREADS Py_RETURN_NONE; } @@ -280,13 +274,12 @@ PyDoc_STRVAR(Monitor___enter____doc__, "__enter__() -> self\n\n" "Part of the context manager protocol.\n" "Returns self.\n"); -static PyObject* Monitor___enter__(PyObject *self, PyObject *args) -{ - assert(self); - assert(!args); +static PyObject* Monitor___enter__(PyObject *self, PyObject *args) { + assert(self); + assert(!args); - Py_INCREF(self); - return self; + Py_INCREF(self); + return self; } @@ -294,34 +287,33 @@ PyDoc_STRVAR(Monitor___exit____doc__, "__exit__(type, value, traceback) -> None\n\n" "Part of the context manager protocol.\n" "Closes the monitor..\n"); -static PyObject* Monitor___exit__(Monitor *self, PyObject *args) -{ +static PyObject* Monitor___exit__(Monitor *self, PyObject *args) { return Monitor_close(self, args); } static PyMethodDef Monitor_methods[] = { - {"fileno", (PyCFunction) Monitor_fileno, METH_NOARGS, Monitor_fileno__doc__}, - {"get_events", (PyCFunction) Monitor_get_events, METH_NOARGS, Monitor_get_events__doc__}, - {"get_timeout", (PyCFunction) Monitor_get_timeout, METH_NOARGS, Monitor_get_timeout__doc__}, - {"get_timeout_ms", (PyCFunction) Monitor_get_timeout_ms, METH_NOARGS, Monitor_get_timeout_ms__doc__}, - {"close", (PyCFunction) Monitor_close, METH_NOARGS, Monitor_close__doc__}, - {"flush", (PyCFunction) Monitor_flush, METH_NOARGS, Monitor_flush__doc__}, - {"__enter__", (PyCFunction) Monitor___enter__, METH_NOARGS, Monitor___enter____doc__}, - {"__exit__", (PyCFunction) Monitor___exit__, METH_VARARGS, Monitor___exit____doc__}, - {} /* Sentinel */ + {"fileno", (PyCFunction) Monitor_fileno, METH_NOARGS, Monitor_fileno__doc__}, + {"get_events", (PyCFunction) Monitor_get_events, METH_NOARGS, Monitor_get_events__doc__}, + {"get_timeout", (PyCFunction) Monitor_get_timeout, METH_NOARGS, Monitor_get_timeout__doc__}, + {"get_timeout_ms", (PyCFunction) Monitor_get_timeout_ms, METH_NOARGS, Monitor_get_timeout_ms__doc__}, + {"close", (PyCFunction) Monitor_close, METH_NOARGS, Monitor_close__doc__}, + {"flush", (PyCFunction) Monitor_flush, METH_NOARGS, Monitor_flush__doc__}, + {"__enter__", (PyCFunction) Monitor___enter__, METH_NOARGS, Monitor___enter____doc__}, + {"__exit__", (PyCFunction) Monitor___exit__, METH_VARARGS, Monitor___exit____doc__}, + {} /* Sentinel */ }; static PyTypeObject MonitorType = { - PyVarObject_HEAD_INIT(NULL, 0) - .tp_name = "login.Monitor", - .tp_basicsize = sizeof(Monitor), - .tp_dealloc = (destructor) Monitor_dealloc, - .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, - .tp_doc = Monitor__doc__, - .tp_methods = Monitor_methods, - .tp_init = (initproc) Monitor_init, - .tp_new = PyType_GenericNew, + PyVarObject_HEAD_INIT(NULL, 0) + .tp_name = "login.Monitor", + .tp_basicsize = sizeof(Monitor), + .tp_dealloc = (destructor) Monitor_dealloc, + .tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, + .tp_doc = Monitor__doc__, + .tp_methods = Monitor_methods, + .tp_init = (initproc) Monitor_init, + .tp_new = PyType_GenericNew, };