diff options
author | jochemberndsen@dse.nl <unknown> | 2007-09-27 13:26:49 +0000 |
---|---|---|
committer | jochemberndsen@dse.nl <unknown> | 2007-09-27 13:26:49 +0000 |
commit | a6e73f94c732f3080329fd86ab5361531cb226b5 (patch) | |
tree | f2ee38fdd71c1e0811c25bb584e41e0a88b0b546 | |
parent | 2b52b76bf04d6bcb2f62971126451d9dc5d90871 (diff) | |
download | haskell-a6e73f94c732f3080329fd86ab5361531cb226b5.tar.gz |
FIX BUILD FD_SETSIZE signed
On FreeBSD FD_SETSIZE is unsigned. Cast it to a signed int
for portability.
-rw-r--r-- | rts/posix/Select.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/rts/posix/Select.c b/rts/posix/Select.c index fb7f38de35..8af57bac6f 100644 --- a/rts/posix/Select.c +++ b/rts/posix/Select.c @@ -141,11 +141,15 @@ awaitEvent(rtsBool wait) for(tso = blocked_queue_hd; tso != END_TSO_QUEUE; tso = next) { next = tso->link; + /* On FreeBSD FD_SETSIZE is unsigned. Cast it to signed int + * in order to switch off the 'comparison between signed and + * unsigned error message + */ switch (tso->why_blocked) { case BlockedOnRead: { int fd = tso->block_info.fd; - if (fd >= FD_SETSIZE) { + if (fd >= (int)FD_SETSIZE) { barf("awaitEvent: descriptor out of range"); } maxfd = (fd > maxfd) ? fd : maxfd; @@ -156,7 +160,7 @@ awaitEvent(rtsBool wait) case BlockedOnWrite: { int fd = tso->block_info.fd; - if (fd >= FD_SETSIZE) { + if (fd >= (int)FD_SETSIZE) { barf("awaitEvent: descriptor out of range"); } maxfd = (fd > maxfd) ? fd : maxfd; |