bd9f1d2e7c
Allow method handler to decide if operation could be cancelled. If yes, when connection to the qubesd is terminated (and protocol.connection_lost get called) the operation is cancelled using standard asyncio method - in which case asyncio.CancelledError is thrown inside method handler. This needs to be explicitly enabled, because cancellable methods are much harder to write, to maintain consistent system state. Caveat: protocol.connection_lost is called only when trying to send some data to it (and it's already terminated). Which makes this whole mechanism useful only for events. Otherwise, when sending some data (and possibly detecting that connection is broken), the operation is already completed. QubesOS/qubes-issues#2622 |
||
---|---|---|
.. | ||
__init__.py | ||
qmemmand.py | ||
qubes_create.py | ||
qubes_monitor_layout_notify.py | ||
qubes_prefs.py | ||
qubesd_query.py | ||
qubesd.py | ||
qvm_backup_restore.py | ||
qvm_backup.py | ||
qvm_block.py | ||
qvm_check.py | ||
qvm_clone.py | ||
qvm_create.py | ||
qvm_device.py | ||
qvm_features.py | ||
qvm_firewall.py | ||
qvm_kill.py | ||
qvm_ls.py | ||
qvm_pause.py | ||
qvm_pool.py | ||
qvm_prefs.py | ||
qvm_remove.py | ||
qvm_run.py | ||
qvm_shutdown.py | ||
qvm_start.py | ||
qvm_tags.py | ||
qvm_template_commit.py | ||
qvm_template_postprocess.py | ||
qvm_unpause.py |