Safe Haskell | None |
---|---|
Language | Haskell2010 |
- newtype Pid = Pid Word64
- class Process m => Clock m where
- data LamportTime = LamportTime !LocalTime !Pid
- type LocalTime = Natural
- class Monad m => Process m where
- newtype LamportClockSim a = LamportClockSim (State (Map Pid LocalTime) a)
- newtype ProcessSim a = ProcessSim (ReaderT Pid LamportClockSim a)
- runLamportClockSim :: LamportClockSim a -> a
- runProcessSim :: Pid -> ProcessSim a -> LamportClockSim a
- data LamportClock a
- runLamportClock :: TVar LocalTime -> LamportClock a -> IO a
- getRealLocalTime :: IO LocalTime
Documentation
Unique process identifier
Lamport timestamp (for a single process)
data LamportTime Source #
type LocalTime = Natural Source #
Unix time in 10^{-7} seconds (100 ns), as in RFC 4122 and Swarm RON.
Lamport clock simulation
newtype LamportClockSim a Source #
Lamport clock simpulation. Key is Pid
.
Non-present value is equivalent to 0.
LamportClockSim (State (Map Pid LocalTime) a) |
newtype ProcessSim a Source #
ProcessSim inside Lamport clock simpulation.
runLamportClockSim :: LamportClockSim a -> a Source #
runProcessSim :: Pid -> ProcessSim a -> LamportClockSim a Source #
Real Lamport clock
data LamportClock a Source #
runLamportClock :: TVar LocalTime -> LamportClock a -> IO a Source #