|
System.Posix.Semaphore | Portability | non-portable (requires POSIX) | Stability | experimental | Maintainer | libraries@haskell.org |
|
|
|
Description |
POSIX named semaphore support.
|
|
Synopsis |
|
|
|
Documentation |
|
data OpenSemFlags |
Constructors | OpenSemFlags | | semCreate :: Bool | If true, create the semaphore if it
does not yet exist.
| semExclusive :: Bool | If true, throw an exception if the
semaphore already exists.
|
|
|
|
|
data Semaphore |
|
semOpen :: String -> OpenSemFlags -> FileMode -> Int -> IO Semaphore |
Open a named semaphore with the given name, flags, mode, and initial
value.
|
|
semUnlink :: String -> IO () |
Delete the semaphore with the given name.
|
|
semWait :: Semaphore -> IO () |
Lock the semaphore, blocking until it becomes available. Since this
is done through a system call, this will block the *entire runtime*,
not just the current thread. If this is not the behaviour you want,
use semThreadWait instead.
|
|
semTryWait :: Semaphore -> IO Bool |
Attempt to lock the semaphore without blocking. Immediately return
False if it is not available.
|
|
semThreadWait :: Semaphore -> IO () |
Poll the semaphore until it is available, then lock it. Unlike
semWait, this will block only the current thread rather than the
entire process.
|
|
semPost :: Semaphore -> IO () |
Unlock the semaphore.
|
|
semGetValue :: Semaphore -> IO Int |
Return the semaphore's current value.
|
|
Produced by Haddock version 2.3.0 |