From: sof Date: Wed, 22 Jul 1998 20:40:38 +0000 (+0000) Subject: [project @ 1998-07-22 20:40:26 by sof] X-Git-Tag: Approx_2487_patches~503 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=769c3b48e690967fc19e885581efef299043bf28;p=ghc-hetmet.git [project @ 1998-07-22 20:40:26 by sof] IO.hInputReady: interval arg is millisecs, not secs --- diff --git a/ghc/lib/std/IO.lhs b/ghc/lib/std/IO.lhs index 22b7745..d98b15c 100644 --- a/ghc/lib/std/IO.lhs +++ b/ghc/lib/std/IO.lhs @@ -166,7 +166,7 @@ instance Read BufferMode where Computation @hReady hdl@ indicates whether at least one item is available for input from handle {\em hdl}. -@hWaitForInput@ is the generalisation, wait for \tr{n} seconds +@hWaitForInput@ is the generalisation, wait for \tr{n} milliseconds before deciding whether the Handle has run dry or not. \begin{code} @@ -174,9 +174,9 @@ before deciding whether the Handle has run dry or not. hReady h = hWaitForInput h 0 --hWaitForInput :: Handle -> Int -> IO Bool -hWaitForInput handle nsecs = do +hWaitForInput handle msecs = do hdl <- wantReadableHandle handle - rc <- _ccall_ inputReady (filePtr hdl) nsecs + rc <- _ccall_ inputReady (filePtr hdl) msecs writeHandle handle (markHandle hdl) case rc of 0 -> return False diff --git a/ghc/lib/std/cbits/inputReady.lc b/ghc/lib/std/cbits/inputReady.lc index 8baa582..7d9b685 100644 --- a/ghc/lib/std/cbits/inputReady.lc +++ b/ghc/lib/std/cbits/inputReady.lc @@ -36,9 +36,9 @@ #endif StgInt -inputReady(fp, nsecs) +inputReady(fp, msecs) StgForeignObj fp; -StgInt nsecs; +StgInt msecs; { int flags, c, fd, maxfd, ready; fd_set rfd; @@ -75,8 +75,8 @@ StgInt nsecs; FD_SET(fd, &rfd); /* select() will consider the descriptor set in the range of 0 to (maxfd-1) */ maxfd = fd + 1; - tv.tv_usec = 0; - tv.tv_sec = nsecs; + tv.tv_sec = msecs / 1000; + tv.tv_usec = msecs % 1000; while ((ready = select(maxfd, &rfd, NULL, NULL, &tv)) < 0 ) { if (errno != EINTR ) { cvtErrno();