static int update_event(lcb_io_opt_t io, lcb_socket_t sock, void *event, short flags, void *data, pycbc_lcb_cb_t handler) { pycbc_IOEvent *ev = (pycbc_IOEvent*)event; pycbc_evaction_t action; pycbc_evstate_t new_state; if (!flags) { action = PYCBC_EVACTION_UNWATCH; new_state = PYCBC_EVSTATE_SUSPENDED; } else { action = PYCBC_EVACTION_WATCH; new_state = PYCBC_EVSTATE_ACTIVE; } ev->cb.handler = handler; ev->cb.data = data; if (ev->flags == flags && new_state == ev->state && ev->fd == sock) { return 0; } return modify_event_python((pycbc_iops_t*)io, (pycbc_Event*)ev, action, sock, &flags); }
static void delete_timer(lcb_io_opt_t io, void *timer) { lcb_U32 dummy = 0; pycbc_IOPSWrapper *pio = PYCBC_IOW_FROM_IOPS(io); modify_event_python(pio, (pycbc_Event*)timer, PYCBC_EVACTION_UNWATCH, -1, &dummy); }
static void delete_event(lcb_io_opt_t io, lcb_socket_t sock, void *event) { pycbc_Event *ev = (pycbc_Event*)event; pycbc_IOPSWrapper *pio = PYCBC_IOW_FROM_IOPS(io); short tmp = 0; modify_event_python(pio, ev, PYCBC_EVACTION_UNWATCH, sock, &tmp); }
static void delete_timer(lcb_io_opt_t io, void *timer) { lcb_uint32_t dummy = 0; modify_event_python((pycbc_iops_t*)io, (pycbc_Event*)timer, PYCBC_EVACTION_UNWATCH, -1, &dummy); }
static void delete_event(lcb_io_opt_t io, lcb_socket_t sock, void *event) { pycbc_IOEvent *ev = (pycbc_IOEvent*)event; modify_event_python((pycbc_iops_t*) io, (pycbc_Event*) ev, PYCBC_EVACTION_UNWATCH, sock, &ev->flags); }
static int update_timer(lcb_io_opt_t io, void *timer, lcb_U32 usec, void *data, pycbc_lcb_cb_t handler) { pycbc_TimerEvent *ev = (pycbc_TimerEvent*)timer; ev->cb.data = data; ev->cb.handler = handler; return modify_event_python(PYCBC_IOW_FROM_IOPS(io), (pycbc_Event*)ev, PYCBC_EVACTION_WATCH, -1, &usec); }
static void destroy_event_common(lcb_io_opt_t io, void *arg) { pycbc_Event *ev = arg; lcb_U32 dummy = 0; pycbc_assert(ev->state != PYCBC_EVSTATE_ACTIVE); modify_event_python(PYCBC_IOW_FROM_IOPS(io), ev, PYCBC_EVACTION_CLEANUP, 0, &dummy); ev->state = PYCBC_EVSTATE_FREED; Py_DECREF(ev); }
static int update_timer(lcb_io_opt_t io, void *timer, lcb_uint32_t usec, void *data, pycbc_lcb_cb_t handler) { pycbc_TimerEvent *ev = (pycbc_TimerEvent*)timer; ev->cb.data = data; ev->cb.handler = handler; return modify_event_python((pycbc_iops_t*)io, (pycbc_Event*)ev, PYCBC_EVACTION_WATCH, -1, &usec); }