+#elif HAVE_SELECT
+ fd_set rfds;
+ struct timeval tv;
+ int ret;
+
+ FD_ZERO(&rfds);
+ FD_SET(fd, &rfds);
+ memset(&tv, 0, sizeof(tv));
+ ret = select(fd + 1, &rfds, NULL, NULL, &tv);
+ if (ret < 0)
+ return FALSE;
+ if (!ret)
+ return FALSE;
+ if (!FD_ISSET(fd, rfds))
+ return FALSE;
+ return TRUE;
+#else
+ (void)fd;
+ return FALSE;
+#endif