diff --git a/rts/posix/Select.c b/rts/posix/Select.c index 013b374d1addc8b8f54a2469a17c1c5cfcaeab01..1edf6bc690232c84696e740e3f7f8cc9856dc9f3 100644 --- a/rts/posix/Select.c +++ b/rts/posix/Select.c @@ -218,12 +218,12 @@ awaitEvent(rtsBool wait) the RTS won't loop. */ if ( errno == EBADF ) { - unblock_all = rtsTrue; - break; + unblock_all = rtsTrue; + break; } else { - perror("select"); - barf("select failed"); - } + sysErrorBelch("select"); + stg_exit(EXIT_FAILURE); + } } /* We got a signal; could be one of ours. If so, we need