Allow "INLINEABLE" as a synonym
[ghc-hetmet.git] / rts / posix / Select.c
index 46db405..932fc79 100644 (file)
 #include "Select.h"
 #include "AwaitEvent.h"
 
+# ifdef HAVE_SYS_SELECT_H
+#  include <sys/select.h>
+# endif
+
 # ifdef HAVE_SYS_TYPES_H
 #  include <sys/types.h>
 # endif
@@ -152,7 +156,7 @@ awaitEvent(rtsBool wait)
        case BlockedOnRead:
          { 
            int fd = tso->block_info.fd;
-           if (fd >= (int)FD_SETSIZE) {
+           if ((fd >= (int)FD_SETSIZE) || (fd < 0)) {
                barf("awaitEvent: descriptor out of range");
            }
            maxfd = (fd > maxfd) ? fd : maxfd;
@@ -163,7 +167,7 @@ awaitEvent(rtsBool wait)
        case BlockedOnWrite:
          { 
            int fd = tso->block_info.fd;
-           if (fd >= (int)FD_SETSIZE) {
+           if ((fd >= (int)FD_SETSIZE) || (fd < 0)) {
                barf("awaitEvent: descriptor out of range");
            }
            maxfd = (fd > maxfd) ? fd : maxfd;