13 lines
666 B
ReStructuredText
13 lines
666 B
ReStructuredText
|
Add `tokio-style broadcast channels
|
||
|
<https://docs.rs/tokio/1.11.0/tokio/sync/broadcast/index.html>`_ as
|
||
|
a solution for `#204 <https://github.com/goodboy/tractor/pull/204>`_ and
|
||
|
discussed thoroughly in `trio/#987
|
||
|
<https://github.com/python-trio/trio/issues/987>`_.
|
||
|
|
||
|
This gives us local task broadcast functionality using a new
|
||
|
``BroadcastReceiver`` type which can wrap ``trio.ReceiveChannel`` and
|
||
|
provide fan-out copies of a stream of data to every subscribed consumer.
|
||
|
We use this new machinery to provide a ``ReceiveMsgStream.subscribe()``
|
||
|
async context manager which can be used by actor-local concumers tasks
|
||
|
to easily pull from a shared and dynamic IPC stream.
|