Safe Haskell | None |
---|---|
Language | Haskell2010 |
- newtype Pid = Pid Int
- data LamportTime = LamportTime !LocalTime !Pid
- getTime :: Process LamportTime
- advance :: LamportTime -> Process ()
- newtype LamportClock a = LamportClock (State (IntMap LocalTime) a)
- runLamportClock :: LamportClock a -> a
- newtype Process a = Process (ReaderT Pid LamportClock a)
- getPid :: Process Pid
- runProcess :: Pid -> Process a -> LamportClock a
Documentation
Unique process identifier
Lamport timestamp (for a single process)
data LamportTime Source #
LamportTime !LocalTime !Pid |
advance :: LamportTime -> Process () Source #
Lamport clock (for a whole multi-process system)
newtype LamportClock a Source #
Key is Pid
. Non-present value is equivalent to 0.
LamportClock (State (IntMap LocalTime) a) |
runLamportClock :: LamportClock a -> a Source #
Process
runProcess :: Pid -> Process a -> LamportClock a Source #