[project @ 2000-01-17 17:33:30 by simonmar]
authorsimonmar <unknown>
Mon, 17 Jan 2000 17:33:30 +0000 (17:33 +0000)
committersimonmar <unknown>
Mon, 17 Jan 2000 17:33:30 +0000 (17:33 +0000)
commita5fda6b2dd3cfea1566e5a297ab243762d050fc5
tree013942592c5ec601b2d65faac3e7e56647547e53
parentb7fee0386636c731bd2c9ec87daea310c34862e4
[project @ 2000-01-17 17:33:30 by simonmar]
Put a giant loop around awaitEvent, to protect against
awaitEvent(rtsTrue) returning with no threads to run.

This can happen if we try to delay for some time X, and select(2)
decides to wait for a shorter time X-\delta instead.  It appears that
Solaris is more prone to doing this than Linux.

This fixes the "schedule: invalid whatNext field" crashes that people
may have seen.
ghc/rts/Select.c