Lines Matching defs:self
426 update_ufd_array(pollObject *self)
430 struct pollfd *old_ufds = self->ufds;
432 self->ufd_len = PyDict_GET_SIZE(self->dict);
433 PyMem_RESIZE(self->ufds, struct pollfd, self->ufd_len);
434 if (self->ufds == NULL) {
435 self->ufds = old_ufds;
441 while (PyDict_Next(self->dict, &pos, &key, &value)) {
442 assert(i < self->ufd_len);
444 self->ufds[i].fd = (int)PyLong_AsLong(key);
445 self->ufds[i].events = (short)(unsigned short)PyLong_AsLong(value);
448 assert(i == self->ufd_len);
449 self->ufd_uptodate = 1;
466 select_poll_register_impl(pollObject *self, int fd, unsigned short eventmask)
482 err = PyDict_SetItem(self->dict, key, value);
488 self->ufd_uptodate = 0;
508 select_poll_modify_impl(pollObject *self, int fd, unsigned short eventmask)
518 err = PyDict_Contains(self->dict, key);
534 err = PyDict_SetItem(self->dict, key, value);
540 self->ufd_uptodate = 0;
556 select_poll_unregister_impl(pollObject *self, int fd)
566 if (PyDict_DelItem(self->dict, key) == -1) {
574 self->ufd_uptodate = 0;
594 select_poll_poll_impl(pollObject *self, PyObject *timeout_obj)
636 if (self->poll_running) {
643 if (!self->ufd_uptodate)
644 if (update_ufd_array(self) == 0)
647 self->poll_running = 1;
654 poll_result = poll(self->ufds, self->ufd_len, (int)ms);
677 self->poll_running = 0;
693 while (!self->ufds[i].revents) {
702 num = PyLong_FromLong(self->ufds[i].fd);
713 num = PyLong_FromLong(self->ufds[i].revents & 0xffff);
732 pollObject *self;
733 self = PyObject_New(pollObject, get_select_state(module)->poll_Type);
734 if (self == NULL)
738 self->ufd_uptodate = 0;
739 self->ufds = NULL;
740 self->poll_running = 0;
741 self->dict = PyDict_New();
742 if (self->dict == NULL) {
743 Py_DECREF(self);
746 return self;
750 poll_dealloc(pollObject *self)
752 PyObject* type = (PyObject *)Py_TYPE(self);
753 if (self->ufds != NULL)
754 PyMem_Free(self->ufds);
755 Py_XDECREF(self->dict);
756 PyObject_Free(self);
779 static int devpoll_flush(devpollObject *self)
783 if (!self->n_fds) return 0;
785 size = sizeof(struct pollfd)*self->n_fds;
786 self->n_fds = 0;
788 n = _Py_write(self->fd_devpoll, self->fds, size);
810 internal_devpoll_register(devpollObject *self, int fd,
813 if (self->fd_devpoll < 0)
817 self->fds[self->n_fds].fd = fd;
818 self->fds[self->n_fds].events = POLLREMOVE;
820 if (++self->n_fds == self->max_n_fds) {
821 if (devpoll_flush(self))
826 self->fds[self->n_fds].fd = fd;
827 self->fds[self->n_fds].events = (signed short)events;
829 if (++self->n_fds == self->max_n_fds) {
830 if (devpoll_flush(self))
851 select_devpoll_register_impl(devpollObject *self, int fd,
855 return internal_devpoll_register(self, fd, eventmask, 0);
872 select_devpoll_modify_impl(devpollObject *self, int fd,
876 return internal_devpoll_register(self, fd, eventmask, 1);
889 select_devpoll_unregister_impl(devpollObject *self, int fd)
892 if (self->fd_devpoll < 0)
895 self->fds[self->n_fds].fd = fd;
896 self->fds[self->n_fds].events = POLLREMOVE;
898 if (++self->n_fds == self->max_n_fds) {
899 if (devpoll_flush(self))
920 select_devpoll_poll_impl(devpollObject *self, PyObject *timeout_obj)
929 if (self->fd_devpoll < 0)
954 if (devpoll_flush(self))
957 dvp.dp_fds = self->fds;
958 dvp.dp_nfds = self->max_n_fds;
969 poll_result = ioctl(self->fd_devpoll, DP_POLL, &dvp);
1002 num1 = PyLong_FromLong(self->fds[i].fd);
1003 num2 = PyLong_FromLong(self->fds[i].revents);
1025 devpoll_internal_close(devpollObject *self)
1028 if (self->fd_devpoll >= 0) {
1029 int fd = self->fd_devpoll;
1030 self->fd_devpoll = -1;
1048 select_devpoll_close_impl(devpollObject *self)
1051 errno = devpoll_internal_close(self);
1060 devpoll_get_closed(devpollObject *self, void *Py_UNUSED(ignored))
1062 if (self->fd_devpoll < 0)
1075 select_devpoll_fileno_impl(devpollObject *self)
1078 if (self->fd_devpoll < 0)
1080 return PyLong_FromLong(self->fd_devpoll);
1092 devpollObject *self;
1120 self = PyObject_New(devpollObject, get_select_state(module)->devpoll_Type);
1121 if (self == NULL) {
1126 self->fd_devpoll = fd_devpoll;
1127 self->max_n_fds = limit.rlim_cur;
1128 self->n_fds = 0;
1129 self->fds = fds;
1131 return self;
1135 devpoll_dealloc(devpollObject *self)
1137 PyObject *type = (PyObject *)Py_TYPE(self);
1138 (void)devpoll_internal_close(self);
1139 PyMem_Free(self->fds);
1140 PyObject_Free(self);
1255 pyepoll_internal_close(pyEpoll_Object *self)
1258 if (self->epfd >= 0) {
1259 int epfd = self->epfd;
1260 self->epfd = -1;
1272 pyEpoll_Object *self;
1276 self = (pyEpoll_Object *) epoll_alloc(type, 0);
1277 if (self == NULL)
1283 self->epfd = epoll_create1(EPOLL_CLOEXEC);
1285 self->epfd = epoll_create(sizehint);
1290 self->epfd = fd;
1292 if (self->epfd < 0) {
1293 Py_DECREF(self);
1299 if (fd == -1 && _Py_set_inheritable(self->epfd, 0, NULL) < 0) {
1300 Py_DECREF(self);
1305 return (PyObject *)self;
1349 pyepoll_dealloc(pyEpoll_Object *self)
1351 PyTypeObject* type = Py_TYPE(self);
1352 (void)pyepoll_internal_close(self);
1354 epoll_free((PyObject *)self);
1367 select_epoll_close_impl(pyEpoll_Object *self)
1370 errno = pyepoll_internal_close(self);
1380 pyepoll_get_closed(pyEpoll_Object *self, void *Py_UNUSED(ignored))
1382 if (self->epfd < 0)
1395 select_epoll_fileno_impl(pyEpoll_Object *self)
1398 if (self->epfd < 0)
1400 return PyLong_FromLong(self->epfd);
1475 select_epoll_register_impl(pyEpoll_Object *self, int fd,
1479 return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_ADD, fd, eventmask);
1494 select_epoll_modify_impl(pyEpoll_Object *self, int fd,
1498 return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_MOD, fd, eventmask);
1511 select_epoll_unregister_impl(pyEpoll_Object *self, int fd)
1514 return pyepoll_internal_ctl(self->epfd, EPOLL_CTL_DEL, fd, 0);
1533 select_epoll_poll_impl(pyEpoll_Object *self, PyObject *timeout_obj,
1542 if (self->epfd < 0)
1597 nfds = epoll_wait(self->epfd, evs, maxevents, (int)ms);
1649 select_epoll___enter___impl(pyEpoll_Object *self)
1652 if (self->epfd < 0)
1655 Py_INCREF(self);
1656 return (PyObject *)self;
1670 select_epoll___exit___impl(pyEpoll_Object *self, PyObject *exc_type,
1674 _selectstate *state = _selectstate_by_type(Py_TYPE(self));
1675 return PyObject_CallMethodObjArgs((PyObject *)self, state->close, NULL);
1862 kqueue_event_init(kqueue_event_Object *self, PyObject *args, PyObject *kwds)
1871 EV_SET(&(self->e), 0, EVFILT_READ, EV_ADD, 0, 0, 0); /* defaults */
1874 &pfd, &(self->e.filter), &(self->e.flags),
1875 &(self->e.fflags), &(self->e.data), &(self->e.udata))) {
1880 self->e.ident = PyLong_AsSize_t(pfd);
1883 self->e.ident = PyObject_AsFileDescriptor(pfd);
1941 kqueue_queue_internal_close(kqueue_queue_Object *self)
1944 if (self->kqfd >= 0) {
1945 int kqfd = self->kqfd;
1946 self->kqfd = -1;
1958 kqueue_queue_Object *self;
1962 self = (kqueue_queue_Object *) queue_alloc(type, 0);
1963 if (self == NULL) {
1969 self->kqfd = kqueue();
1973 self->kqfd = fd;
1975 if (self->kqfd < 0) {
1976 Py_DECREF(self);
1982 if (_Py_set_inheritable(self->kqfd, 0, NULL) < 0) {
1983 Py_DECREF(self);
1987 return (PyObject *)self;
2017 kqueue_queue_dealloc(kqueue_queue_Object *self)
2019 PyTypeObject* type = Py_TYPE(self);
2020 kqueue_queue_internal_close(self);
2022 kqueue_free((PyObject *)self);
2035 select_kqueue_close_impl(kqueue_queue_Object *self)
2038 errno = kqueue_queue_internal_close(self);
2047 kqueue_queue_get_closed(kqueue_queue_Object *self, void *Py_UNUSED(ignored))
2049 if (self->kqfd < 0)
2062 select_kqueue_fileno_impl(kqueue_queue_Object *self)
2065 if (self->kqfd < 0)
2067 return PyLong_FromLong(self->kqfd);
2106 select_kqueue_control_impl(kqueue_queue_Object *self, PyObject *changelist,
2120 _selectstate *state = _selectstate_by_type(Py_TYPE(self));
2122 if (self->kqfd < 0)
2173 _selectstate *state = _selectstate_by_type(Py_TYPE(self));
2203 gotevents = kevent(self->kqfd, chl, nchanges,