traits_futures.asyncio.pingee module¶
asyncio cross-thread pinger.
This module provides a way for a background thread to request that the main thread execute a (fixed, parameterless) callback.
- class traits_futures.asyncio.pingee.Pingee(on_ping, event_loop)[source]¶
Bases:
object
Receiver for pings.
Whenever a ping is received from a linked Pinger, the receiver calls the given fixed parameterless callable.
The ping receiver must be connected (using the
connect
) method before use, and should calldisconnect
when it’s no longer expected to receive pings.- Parameters:
on_ping – Zero-argument callable that’s called on the main thread every time a ping is received.
event_loop (
asyncio.AbstractEventLoop
) – The asyncio event loop that pings will be sent to.
- pinger()[source]¶
Create and return a new pinger linked to this pingee.
This method is thread-safe. Typically the pingee will be passed to a background thread, and this method used within that background thread to create a pinger.
This method should only be called after the ‘connect’ method has been called.
- Returns:
pinger – New pinger, linked to this pingee.
- Return type:
- class traits_futures.asyncio.pingee.Pinger(pingee, event_loop)[source]¶
Bases:
object
Ping emitter, which can send pings to a receiver in a thread-safe manner.
- Parameters:
pingee (
Pingee
) – The target receiver for the pings. The receiver must already be connected.event_loop (
asyncio.AbstractEventLoop
) – The asyncio event loop that will execute the ping callback.
- connect()[source]¶
Connect to the ping receiver. No pings should be sent until this function is called.