sodium-0.11.0.3: Sodium Reactive Programming (FRP) System

Safe HaskellNone
LanguageHaskell98

FRP.Sodium.Internal

Synopsis

Documentation

listenTrans :: Event a -> (a -> Reactive ()) -> Reactive (IO ()) Source

Variant of listen that allows you to initiate more activity in the current transaction. Useful for implementing new primitives.

schedulePrioritized :: Maybe (MVar Node) -> Reactive () -> Reactive () Source

Queue the specified atomic to run at the end of the priority 2 queue

data Listen a Source

Constructors

Listen 

Fields

runListen_ :: Maybe (MVar Node) -> Bool -> (a -> Reactive ()) -> Reactive (IO ())
 
listenerKeepAlive :: IORef ()
 

getListen :: Event a -> Reactive (Listen a) Source

Unwrap an event's listener machinery.

linkedListen :: Event a -> Maybe (MVar Node) -> Bool -> (a -> Reactive ()) -> Reactive (IO ()) Source

Listen for firings of this event. The returned IO () is an IO action that unregisters the listener. This is the observer pattern.

newEventLinked :: Dep -> IO (Event a, a -> Reactive (), MVar Node) Source

Returns an event, and a push action for pushing a value into the event.

newEvent :: Reactive (Event a, a -> Reactive ()) Source

Returns an event, and a push action for pushing a value into the event.

newEventImpl :: forall p a. IO (Listen a, a -> Reactive (), MVar Node) Source

Returns a Listen for registering listeners, and a push action for pushing a value into the event.

finalizeEvent :: Event a -> IO () -> Event a Source

Add a finalizer to an event.

finalizeListen :: Listen a -> IO () -> IO (Listen a) Source

Add a finalizer to a listener.

addCleanup_Listen :: Unlistener -> Listen a -> Reactive (Listen a) Source

Cause the things listened to with later to be unlistened when the specified listener is not referenced any more.

data Sample a Source

Constructors

Sample 

Fields

unSample :: IO a
 
sDep :: Dep
 
sampleKeepAlive :: Maybe (IORef ())
 

addCleanup_Sample :: Unlistener -> Sample a -> IO (Sample a) Source

Cause the things listened to with later to be unlistened when the specified sample is not referenced any more.

later :: Reactive (IO ()) -> Reactive Unlistener Source

Perform a listen later so we can tolerate lazy loops. Returns an Unlistener that can be attached to an event with addCleanup_Listen.

dep :: a -> Dep Source

unsafeNewIORef :: a -> b -> IORef a Source