static ngx_int_t ngx_devpoll_del_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) { ngx_event_t *e; ngx_connection_t *c; c = ev->data; #if (NGX_READ_EVENT != POLLIN) event = (event == NGX_READ_EVENT) ? POLLIN : POLLOUT; #endif ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, "devpoll del event: fd:%d ev:%04Xi", c->fd, event); if (ngx_devpoll_set_event(ev, POLLREMOVE, flags) == NGX_ERROR) { return NGX_ERROR; } ev->active = 0; if (flags & NGX_CLOSE_EVENT) { e = (event == POLLIN) ? c->write : c->read; if (e) { e->active = 0; } return NGX_OK; } /* restore the pair event if it exists */ if (event == POLLIN) { e = c->write; event = POLLOUT; } else { e = c->read; event = POLLIN; } if (e && e->active) { return ngx_devpoll_set_event(e, event, 0); } return NGX_OK; }
static int ngx_devpoll_del_event(ngx_event_t *ev, int event, u_int flags) { ngx_event_t *e; ngx_connection_t *c; c = ev->data; ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, "devpoll del event: fd:%d ev:%04X", c->fd, event); if (ngx_devpoll_set_event(ev, POLLREMOVE, flags) == NGX_ERROR) { return NGX_ERROR; } ev->active = 0; if (flags & NGX_CLOSE_EVENT) { return NGX_OK; } /* we need to restore the second event if it exists */ if (event == NGX_READ_EVENT) { if (ev->accept) { return NGX_OK; } e = c->write; event = POLLOUT; } else { e = c->read; event = POLLIN; } if (e) { return ngx_devpoll_set_event(e, event, 0); } return NGX_OK; }
static int ngx_devpoll_add_event(ngx_event_t *ev, int event, u_int flags) { #if (NGX_DEBUG) ngx_connection_t *c; #endif #if (NGX_READ_EVENT != POLLIN) if (event == NGX_READ_EVENT) { event = POLLOUT; #if (NGX_WRITE_EVENT != POLLOUT) } else { event = POLLIN; #endif } #endif #if (NGX_DEBUG) c = ev->data; ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, "devpoll add event: fd:%d ev:%04X", c->fd, event); #endif ev->active = 1; return ngx_devpoll_set_event(ev, event, 0); }
static ngx_int_t ngx_devpoll_add_event(ngx_event_t *ev, ngx_int_t event, ngx_uint_t flags) { #if (NGX_DEBUG) ngx_connection_t *c; #endif #if (NGX_READ_EVENT != POLLIN) event = (event == NGX_READ_EVENT) ? POLLIN : POLLOUT; #endif #if (NGX_DEBUG) c = ev->data; ngx_log_debug2(NGX_LOG_DEBUG_EVENT, ev->log, 0, "devpoll add event: fd:%d ev:%04Xi", c->fd, event); #endif ev->active = 1; return ngx_devpoll_set_event(ev, event, 0); }