- enum io_state state = from_ioop(op);
- struct pollfd *pfd = &pollfds[conn->fd.backend_info];
-
- if (pfd->events)
- num_waiting--;
-
- pfd->events = pollmask(state);
- if (conn->duplex) {
- int mask = pollmask(conn->duplex->state);
- /* You can't *both* read/write. */
- assert(!mask || pfd->events != mask);
- pfd->events |= mask;
- }
- if (pfd->events)
- num_waiting++;
-
- if (state == NEXT)
- num_next++;
- else if (state == FINISHED)
- num_finished++;
-
- conn->state = state;