aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/coverage/compare_gcov_json.py
diff options
context:
space:
mode:
authorZhu Yangyang <zhuyangyang14@huawei.com>2024-04-08 11:00:43 -0500
committerEric Blake <eblake@redhat.com>2024-04-25 07:56:16 -0500
commitae6d91a7e9b77abb029ed3fa9fad461422286942 (patch)
tree3d8a72e2602f5d394816ba25152f7ee3c2d89648 /scripts/coverage/compare_gcov_json.py
parentMerge tag 'pull-tcg-20240424' of https://gitlab.com/rth7680/qemu into staging (diff)
downloadqemu-ae6d91a7e9b77abb029ed3fa9fad461422286942.tar.xz
qemu-ae6d91a7e9b77abb029ed3fa9fad461422286942.zip
nbd/server: do not poll within a coroutine context
Coroutines are not supposed to block. Instead, they should yield. The client performs TLS upgrade outside of an AIOContext, during synchronous handshake; this still requires g_main_loop. But the server responds to TLS upgrade inside a coroutine, so a nested g_main_loop is wrong. Since the two callbacks no longer share more than the setting of data.complete and data.error, it's just as easy to use static helpers instead of trying to share a common code path. It is also possible to add assertions that no other code is interfering with the eventual path to qio reaching the callback, whether or not it required a yield or main loop. Fixes: f95910f ("nbd: implement TLS support in the protocol negotiation") Signed-off-by: Zhu Yangyang <zhuyangyang14@huawei.com> [eblake: move callbacks to their use point, add assertions] Signed-off-by: Eric Blake <eblake@redhat.com> Message-ID: <20240408160214.1200629-5-eblake@redhat.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
Diffstat (limited to 'scripts/coverage/compare_gcov_json.py')
0 files changed, 0 insertions, 0 deletions