diff --git a/CHANGES b/CHANGES index 920c2c6..8e3cc47 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,7 @@ 0.9.5 (unreleased) ===== * Make pipe write unblocking. +* Use ceil for `poll` timeout. 0.9.4 (2024-03-18) ===== diff --git a/src/duppy_stubs.c b/src/duppy_stubs.c index 7a211fd..af3aaa8 100644 --- a/src/duppy_stubs.c +++ b/src/duppy_stubs.c @@ -28,6 +28,7 @@ #include #include +#include /* On native Windows platforms, many macros are not defined. */ # if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ @@ -65,7 +66,7 @@ CAMLprim value caml_poll(value _read, value _write, value _err, value _timeout) if (Double_val(_timeout) == -1) timeout = -1; else - timeout = Double_val(_timeout) * 1000; + timeout = ceil(Double_val(_timeout) * 1000); nfds += Wosize_val(_read); nfds += Wosize_val(_write); @@ -97,7 +98,7 @@ CAMLprim value caml_poll(value _read, value _write, value _err, value _timeout) if (ret == -1) { free(fds); - uerror("poll",Nothing); + uerror("poll", Nothing); } for (n = 0; n < nfds; n++) {