- bit_fdmask readmask;
- bit_fdmask writemask;
- int n;
- int nfds;
- int fd;
- struct iop *iop;
-
- iom_getmask(iom, &nfds, &readmask, &writemask);
- n = select(nfds + 1, (fd_set *)readmask, (fd_set *)writemask, 0, tv);
- if (n <= 0) {
- if (errno == EINTR)
- return 0;
- return -1;
- }
- while ((fd = bit_fd(readmask)) >= 0) {
- iop = io_list[fd];
- if ((iop->flags & IO_NEWSOCK) == 0)
- (void) io_input(iop, IO_NOWAIT);
- if (iop->notify != 0)
- iop->notify(iop, IO_READ, iop->assoc);
- BIT_CLRB(fd, readmask);
- }
- while ((fd = bit_fd(writemask)) >= 0) {
- iop = io_list[fd];
- if (io_output(iop, IO_NOWAIT) < 0 && iop->notify != 0)
- iop->notify(iop, IO_WRITE, iop->assoc);
- BIT_CLRB(fd, writemask);
- }
- return n;
+ bit_fdmask readmask;
+ bit_fdmask writemask;
+ int n;
+ int nfds;
+ int fd;
+ struct iop *iop;
+
+ iom_getmask(iom, &nfds, &readmask, &writemask);
+ n = select(nfds + 1, (fd_set *) readmask, (fd_set *) writemask, 0, tv);
+ if (n <= 0) {
+ if (errno == EINTR)
+ return 0;
+ return -1;
+ }
+ while ((fd = bit_fd(readmask)) >= 0) {
+ iop = io_list[fd];
+ if ((iop->flags & IO_NEWSOCK) == 0)
+ (void)io_input(iop, IO_NOWAIT);
+ if (iop->notify != 0)
+ iop->notify(iop, IO_READ, iop->assoc);
+ BIT_CLRB(fd, readmask);
+ }
+ while ((fd = bit_fd(writemask)) >= 0) {
+ iop = io_list[fd];
+ if (io_output(iop, IO_NOWAIT) < 0 && iop->notify != 0)
+ iop->notify(iop, IO_WRITE, iop->assoc);
+ BIT_CLRB(fd, writemask);
+ }
+ return n;