summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjochemberndsen@dse.nl <unknown>2007-09-27 13:26:49 +0000
committerjochemberndsen@dse.nl <unknown>2007-09-27 13:26:49 +0000
commita6e73f94c732f3080329fd86ab5361531cb226b5 (patch)
treef2ee38fdd71c1e0811c25bb584e41e0a88b0b546
parent2b52b76bf04d6bcb2f62971126451d9dc5d90871 (diff)
downloadhaskell-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.c8
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;