1 Index: scheduler/select.c
2 ===================================================================
3 --- scheduler/select.c (revision 8887)
4 +++ scheduler/select.c (working copy)
6 if (fdptr->read_cb && event->filter == EVFILT_READ)
7 (*(fdptr->read_cb))(fdptr->data);
9 - if (fdptr->write_cb && event->filter == EVFILT_WRITE)
10 + if (fdptr->use > 1 && fdptr->write_cb && event->filter == EVFILT_WRITE)
11 (*(fdptr->write_cb))(fdptr->data);
15 if (fdptr->read_cb && (event->events & (EPOLLIN | EPOLLERR | EPOLLHUP)))
16 (*(fdptr->read_cb))(fdptr->data);
18 - if (fdptr->write_cb && (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
19 + if (fdptr->use > 1 && fdptr->write_cb &&
20 + (event->events & (EPOLLOUT | EPOLLERR | EPOLLHUP)))
21 (*(fdptr->write_cb))(fdptr->data);
25 if (fdptr->read_cb && (pfd->revents & (POLLIN | POLLERR | POLLHUP)))
26 (*(fdptr->read_cb))(fdptr->data);
28 - if (fdptr->write_cb && (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
29 + if (fdptr->use > 1 && fdptr->write_cb &&
30 + (pfd->revents & (POLLOUT | POLLERR | POLLHUP)))
31 (*(fdptr->write_cb))(fdptr->data);
35 if (fdptr->read_cb && FD_ISSET(fdptr->fd, &cupsd_current_input))
36 (*(fdptr->read_cb))(fdptr->data);
38 - if (fdptr->write_cb && FD_ISSET(fdptr->fd, &cupsd_current_output))
39 + if (fdptr->use > 1 && fdptr->write_cb &&
40 + FD_ISSET(fdptr->fd, &cupsd_current_output))
41 (*(fdptr->write_cb))(fdptr->data);