[Haskell-cafe] Why does sleep not work?

Thomas DuBuisson thomas.dubuisson at gmail.com
Tue Feb 10 15:48:54 EST 2009


Not to say the issue shouldn't be tracked down, but shouldn't a more
portable function be used anyway?

untested example:

maxBoundMicroSecInSec =(maxBound `div` 10^6)
threadDelaySec :: Int -> IO ()
threadDelaySec s
    | s > maxBoundMicroSecInSec = threadDelay (maxBoundMicroSecInSec *
10^6) >> threadDelaySec (s - maxBoundMicroSecInSec)
    | otherwise = threadDelay (s * 10^6)

On Tue, Feb 10, 2009 at 5:57 PM, Corey O'Connor <coreyoconnor at gmail.com> wrote:
> The POSIX sleep function is defined as:
>    sleep() makes the current process sleep until seconds seconds have
> elapsed or a signal arrives which is not ignored.
>
> Sounds like a signal is arriving that is interrupting the sleep.
>
> -Corey O'Connor
>
>
>
> 2009/2/9 John Ky <newhoggy at gmail.com>:
>> Hi Peter,
>>
>> Source code:
>> import System.IO
>> import System.Posix
>>
>> main = do
>>       putStrLn "Waiting for 5 seconds."
>>       sleep 5 -- doesn't sleep at all
>>       putStrLn "Done."
>>
>> OS:
>> Mac OS X 10.5
>>
>> Compile command:
>> ghc --threaded testsleep.hs
>>
>> If I remove --threaded, then it does sleep.
>>
>> Thanks,
>>
>> -John
>>
>> On Tue, Feb 10, 2009 at 8:59 AM, Peter Verswyvelen <bugfact at gmail.com>
>> wrote:
>>>
>>> Hi John,
>>> Which sleep are you using? From which module? Can you show the full source
>>> with import statements?
>>> Cheers,
>>> Peter
>>> 2009/2/9 John Ky <newhoggy at gmail.com>
>>>>
>>>> Hi Haskell Cafe,
>>>>
>>>> I wrote very short program to sleep for 5 seconds compiled with the
>>>> -threaded option in ghc on the Mac OS X 1.5.
>>>>
>>>> I am finding that using the sleep function doesn't sleep at all, whereas
>>>> using threadDelay does:
>>>>
>>>> main = do
>>>>       putStrLn "Waiting for 5 seconds."
>>>>       threadDelay 5000000 -- works
>>>>       putStrLn "Done."
>>>>
>>>> main = do
>>>>       putStrLn "Waiting for 5 seconds."
>>>>       sleep 5 -- doesn't sleep at all
>>>>       putStrLn "Done."
>>>>
>>>> Anybody know what's happening?
>>>>
>>>> Thanks
>>>>
>>>> -John
>>>>
>>>>
>>>> _______________________________________________
>>>> Haskell-Cafe mailing list
>>>> Haskell-Cafe at haskell.org
>>>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>>>
>>>
>>
>>
>> _______________________________________________
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
>> http://www.haskell.org/mailman/listinfo/haskell-cafe
>>
>>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>


More information about the Haskell-Cafe mailing list