diff options
author | Youri Ackx <youri@sugoi.be> | 2021-01-29 14:36:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-29 14:36:38 +0100 |
commit | b5e9f0629200d2b2f62e13e595b802948bb4fefb (patch) | |
tree | 4741857fe53c5500487894c2e3c9ff9c4ee2ce3b /docs/source/index.rst | |
parent | 904d8d3803e84257c08526e9047474215aa1c976 (diff) | |
parent | c7b83a18a54efa9e08a9446e2d16956ee5fe353b (diff) | |
download | blinker-master.tar.gz |
Merge pull request #18 from jek/feature/send-asyncmaster
Adds Signal.send_async for asyncio
Author: @jek
Diffstat (limited to 'docs/source/index.rst')
-rw-r--r-- | docs/source/index.rst | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/docs/source/index.rst b/docs/source/index.rst index bdb40ef..521e7c5 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -14,6 +14,7 @@ The core of Blinker is quite small but provides powerful features: - sending arbitrary data payloads - collecting return values from signal receivers - thread safety + - coroutines as signal receivers Blinker was written by Jason Kirtand and is provided under the MIT License. The library supports Python 2.7 and Python 3.5 or later; @@ -94,6 +95,35 @@ notifications being sent, and these no-op sends are optimized to be as inexpensive as possible. +Async support +------------- + +Send a signal asynchronously to coroutine receivers. + + >>> async def receiver_a(sender): + ... return 'value a' + ... + >>> async def receiver_b(sender): + ... return 'value b' + ... + >>> ready = signal('ready') + >>> ready.connect(receiver_a) + >>> ready.connect(receiver_b) + ... + >>> async def collect(): + ... return ready.send_async('sender') + ... + >>> loop = asyncio.get_event_loop() + >>> results = loop.run_until_complete(collect()) + >>> len(results) + 2 + >>> [v.result() for r, v in results][0] + value a + +Dispatching to an arbitrary mix of connected +coroutines and receiver functions is supported. + + Subscribing to Specific Senders ------------------------------- |