summaryrefslogtreecommitdiff
path: root/.circleci
diff options
context:
space:
mode:
authorNiklas Hambüchen <mail@nh2.me>2017-11-23 13:17:24 -0500
committerBen Gamari <ben@smart-cactus.org>2017-11-24 11:36:55 -0500
commitf209e6672fe33235bd1d4c20c87894021cf3bbc8 (patch)
treec8ced3817f0649ca7ff005d4029e09418a530d57 /.circleci
parent99089fc9240c39726d5b2a50942fb693c48c2bcd (diff)
downloadhaskell-f209e6672fe33235bd1d4c20c87894021cf3bbc8.tar.gz
base: fdReady(): Fix timeouts > ~49 days overflowing. Fixes #14262.
On 64-bit UNIX and Windows, Haskell `Int` has 64 bits but C `int msecs` has 32 bits, resulting in an overflow. This commit fixes it by switching fdReady() to take int64_t, into which a Haskell `Int` will always fit. (Note we could not switch to `long long` because that is 32 bit on 64-bit Windows machines.) Further, to be able to actually wait longer than ~49 days, we put loops around the waiting syscalls (they all accept only 32-bit integers). Note the timer signal would typically interrupt the syscalls before the ~49 days are over, but you can run Haskell programs without the timer signal, an we want it to be correct in all cases. Reviewers: bgamari, austin, hvr, NicolasT, Phyx Reviewed By: bgamari, Phyx Subscribers: syd, Phyx, rwbarton, thomie GHC Trac Issues: #14262 Differential Revision: https://phabricator.haskell.org/D4011
Diffstat (limited to '.circleci')
0 files changed, 0 insertions, 0 deletions