- enum io_state state = from_ioplan(plan);
- struct pollfd *pfd = &pollfds[conn->fd.backend_info];
-
- if (pfd->events)
- num_waiting--;
-
- pfd->events = conn->pollflag;
- if (conn->duplex) {
- int mask = conn->duplex->pollflag;
- /* 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;