Creates a bounded asynchronous queue.
Creates a bounded asynchronous queue. Calls to enqueue1
will wait until the
queue's size is less than maxSize
. See mutable.Queue for more documentation.
Creates a queue that functions as a circular buffer.
Creates a queue that functions as a circular buffer. Up to size
elements of
type A
will accumulate on the queue and then it will begin overwriting
the oldest elements. Thus an enqueue process will never wait.
Converts a discrete stream to a signal.
Converts a discrete stream to a signal. Returns a single-element stream.
Resulting signal is initially initial
, and is updated with latest value
produced by source
. If source
is empty, the resulting signal will always
be initial
.
discrete stream publishing values to this signal
Defined as hold(None, source.map(Some(_)))
Creates a mutable.Semaphore
, initialized to the given count.
Creates a new continuous signal which may be controlled asynchronously,
and immediately sets the value to initialValue
.
Creates a synchronous queue, which always has size 0.
Creates a synchronous queue, which always has size 0. Any calls to enqueue1
block until there is an offsetting call to dequeue1
. Any calls to dequeue1
block until there is an offsetting call to enqueue1
.
Creates an asynchronous topic, which distributes each published A
to
an arbitrary number of subscribers.
Creates an asynchronous topic, which distributes each published A
to
an arbitrary number of subscribers. Each subscriber is guaranteed to
receive at least the initial A
or last value published by any publisher.
Creates an unbounded asynchronous queue.
Creates an unbounded asynchronous queue. See mutable.Queue for more documentation.