+ fd_set rfds;
+ struct timeval tv;
+ int retval;
+
+ FD_ZERO(&rfds);
+ FD_SET(fd, &rfds);
+
+ tv.tv_sec = 0;
+ tv.tv_usec = 1000;
+
+ if ((retval = select(fd+1, &rfds, NULL, NULL, &tv)) == -1) {
+ perror("select");
+ return NULL;
+ }
+
+ if (!retval) {
+ gettimeofday(&curr, NULL);
+ continue;
+ }