uni-reactor-2.2.0.0: Reactor/Lock.hs
-- | Lock is an instance of a typical thing we synchronize with.
-- One instance is 'BSem'.
module Reactor.Lock (
Lock(..),
) where
-- --------------------------------------------------------------------------
-- Class Lock
-- --------------------------------------------------------------------------
class Lock l where
-- | release a lock
release :: l -> IO ()
-- | acquire a lock
acquire :: l -> IO ()
-- | acquire a lock and return True, if that can be done at once, otherwise
-- return False.
tryAcquire :: l -> IO Bool