Signal is a list of registered asynchronous callbacks.
The signal’s life-cycle has two stages: after creation its content could be filled by using standard list operations: sig.append() etc.
After you call sig.freeze() the signal is frozen: adding, removing and dropping callbacks is forbidden.
The only available operation is calling the previously registered callbacks by using await sig.send(data).
For concrete usage examples see the Signals <https://docs.aiohttp.org/en/stable/web_advanced.html#aiohttp-web-signals> section of the Web Server Advanced <https://docs.aiohttp.org/en/stable/web_advanced.html> chapter of the aiohttp documentation.