- if(errno != EINTR) {
- flog(LOG_CRIT, "ioloop: select errored out: %s", strerror(errno));
- /* To avoid CPU hogging in case it's bad, which it
- * probably is. */
- sleep(1);
- }
- }
- now = time(NULL);
- for(bl = blockers; bl; bl = nbl) {
- nbl = bl->n;
- ev = 0;
- if(FD_ISSET(bl->fd, &rfds))
- ev |= EV_READ;
- if(FD_ISSET(bl->fd, &wfds))
- ev |= EV_WRITE;
- if(FD_ISSET(bl->fd, &efds))
- ev = -1;
- if(ev != 0)
- resume(bl->th, ev);
- else if((bl->to != 0) && (bl->to <= now))
- resume(bl->th, 0);