projects
/
qemu.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
882f5b1
)
plugins: Iterate on cb_lists in qemu_plugin_user_exit
author
Richard Henderson
<richard.henderson@linaro.org>
Tue, 24 Jan 2023 18:01:27 +0000
(18:01 +0000)
committer
Alex Bennée
<alex.bennee@linaro.org>
Thu, 2 Feb 2023 11:48:20 +0000
(11:48 +0000)
Rather than iterate over all plugins for all events,
iterate over plugins that have registered a given event.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <
20230117035701
.168514-4-richard.henderson@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
Message-Id: <
20230124180127
.
1881110
-36-alex.bennee@linaro.org>
plugins/core.c
patch
|
blob
|
history
diff --git
a/plugins/core.c
b/plugins/core.c
index 728bacef95f17ef443e0f1b66dc996f74d692783..e04ffa1ba41bf26243f49d3b4f651780f005218c 100644
(file)
--- a/
plugins/core.c
+++ b/
plugins/core.c
@@
-514,9
+514,10
@@
void qemu_plugin_user_exit(void)
/* un-register all callbacks except the final AT_EXIT one */
for (ev = 0; ev < QEMU_PLUGIN_EV_MAX; ev++) {
if (ev != QEMU_PLUGIN_EV_ATEXIT) {
- struct qemu_plugin_ctx *ctx;
- QTAILQ_FOREACH(ctx, &plugin.ctxs, entry) {
- plugin_unregister_cb__locked(ctx, ev);
+ struct qemu_plugin_cb *cb, *next;
+
+ QLIST_FOREACH_SAFE_RCU(cb, &plugin.cb_lists[ev], entry, next) {
+ plugin_unregister_cb__locked(cb->ctx, ev);
}
}
}