diff options
author | Emanuele Giuseppe Esposito <eesposit@redhat.com> | 2022-03-03 10:15:46 -0500 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2022-03-04 18:18:15 +0100 |
commit | 6538692e2802666926e62d9309ddddda5ec9dc3b (patch) | |
tree | 2e846ea0c7ecaf993195b3fd55a7bf43b75afb5e /softmmu | |
parent | ad6fe44bea25e9b0efe050d00751466ad2779631 (diff) | |
download | qemu-6538692e2802666926e62d9309ddddda5ec9dc3b.zip qemu-6538692e2802666926e62d9309ddddda5ec9dc3b.tar.gz qemu-6538692e2802666926e62d9309ddddda5ec9dc3b.tar.bz2 |
main-loop.h: introduce qemu_in_main_thread()
When invoked from the main loop, this function is the same
as qemu_mutex_iothread_locked, and returns true if the BQL is held.
When invoked from iothreads or tests, it returns true only
if the current AioContext is the Main Loop.
This essentially just extends qemu_mutex_iothread_locked to work
also in unit tests or other users like storage-daemon, that run
in the Main Loop but end up using the implementation in
stubs/iothread-lock.c.
Using qemu_mutex_iothread_locked in unit tests defaults to false
because they use the implementation in stubs/iothread-lock,
making all assertions added in next patches fail despite the
AioContext is still the main loop.
See the comment in the function header for more information.
Signed-off-by: Emanuele Giuseppe Esposito <eesposit@redhat.com>
Message-Id: <20220303151616.325444-2-eesposit@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'softmmu')
-rw-r--r-- | softmmu/cpus.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/softmmu/cpus.c b/softmmu/cpus.c index d1ff3cf..1681844 100644 --- a/softmmu/cpus.c +++ b/softmmu/cpus.c @@ -481,6 +481,11 @@ bool qemu_mutex_iothread_locked(void) return get_iothread_locked(); } +bool qemu_in_main_thread(void) +{ + return qemu_mutex_iothread_locked(); +} + /* * The BQL is taken from so many places that it is worth profiling the * callers directly, instead of funneling them all through a single function. |