git.iko.soy/distributed-process
on df911bf help sign in
21 lines 571 B history raw
1-- | Interface to the management event bus.
2module Control.Distributed.Process.Management.Internal.Bus
3 ( publishEvent
4 ) where
6import Control.Distributed.Process.Internal.CQueue
7 ( enqueue
8 )
9import Control.Distributed.Process.Internal.Types
10 ( MxEventBus(..)
11 , Message
12 )
13import Data.Foldable (forM_)
14import System.Mem.Weak (deRefWeak)
16publishEvent :: MxEventBus -> Message -> IO ()
17publishEvent MxEventBusInitialising _ = return ()
18publishEvent (MxEventBus _ _ wqRef _) msg = do
19 mQueue <- deRefWeak wqRef
20 forM_ mQueue $ \queue -> enqueue queue msg