| Portability | non-portable (requires POSIX) |
|---|---|
| Stability | provisional |
| Maintainer | libraries@haskell.org |
| Safe Haskell | Trustworthy |
System.Posix.Unistd
Contents
Description
POSIX miscellaneous stuff, mostly from unistd.h
- data SystemID = SystemID {}
- getSystemID :: IO SystemID
- data SysVar
- = ArgumentLimit
- | ChildLimit
- | ClockTick
- | GroupLimit
- | OpenFileLimit
- | PosixVersion
- | HasSavedIDs
- | HasJobControl
- getSysVar :: SysVar -> IO Integer
- sleep :: Int -> IO Int
- usleep :: Int -> IO ()
- nanosleep :: Integer -> IO ()
System environment
data SystemID
data SysVar
Sleeping
Warning: This function has several shortcomings (see documentation). Please consider using Control.Concurrent.threadDelay instead.
Sleep for the specified duration (in seconds). Returns the time remaining (if the sleep was interrupted by a signal, for example).
GHC Note: threadDelay is a better choice. Since GHC
uses signals for its internal clock, a call to sleep will usually be
interrupted immediately. That makes sleep unusable in a program compiled
with GHC, unless the RTS timer is disabled (with +RTS -V0). Furthermore,
without the -threaded option, sleep will block all other user threads.
Even with the -threaded option, sleep requires a full OS thread to
itself. threadDelay has none of these shortcomings.
Sleep for the specified duration (in microseconds).
GHC Note: threadDelay is a better choice.
Without the -threaded option, usleep will block all other user
threads. Even with the -threaded option, usleep requires a
full OS thread to itself. threadDelay has
neither of these shortcomings.