module documentation

Contains the EventCallback class for seamlessly encapsulating many different types of callback strategies.

Class EventCallback Encapsulates a callback and the calling of it. It handles these cases: * callback is None; do nothing * callback is async; create a task for it and run it on the event loop * callback is a regular function; call it synchronously on the next loop * caller has annotated with @to_thread; call it on threadpool Exceptions from the user callback are caught and logged...