Copyright | (c) The University of Glasgow 2002 |
---|---|
License | BSD-style (see the file libraries/base/LICENSE) |
Maintainer | libraries@haskell.org |
Stability | provisional |
Portability | non-portable (requires POSIX) |
Safe Haskell | Safe |
Language | Haskell2010 |
POSIX miscellaneous stuff, mostly from unistd.h
Synopsis
- 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 ()
- fileSynchronise :: Fd -> IO ()
- fileSynchroniseDataOnly :: Fd -> IO ()
System environment
getSystemID :: IO SystemID Source #
Sleeping
sleep :: Int -> IO Int Source #
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.
usleep :: Int -> IO () Source #
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.
nanosleep :: Integer -> IO () Source #
Sleep for the specified duration (in nanoseconds)
GHC Note
: the comment for
usleep
also applies here.
File synchronisation
fileSynchronise :: Fd -> IO () Source #
Performs
fsync(2)
operation on file-descriptor.
Throws
IOError
("unsupported operation") if platform does not
provide
fsync(2)
(use
#if HAVE_FSYNC
CPP guard to
detect availability).
Since: 2.7.1.0
fileSynchroniseDataOnly :: Fd -> IO () Source #
Warning: operation will throw
IOError
"unsupported operation" (CPP guard:
#if HAVE_FDATASYNC
)
Performs
fdatasync(2)
operation on file-descriptor.
Throws
IOError
("unsupported operation") if platform does not
provide
fdatasync(2)
(use
#if HAVE_FDATASYNC
CPP guard to
detect availability).
Since: 2.7.1.0