0b8b8753e4
In practice the entry argument is always known at creation time, and it is confusing that sometimes qemu_coroutine_enter is used with a non-NULL argument to re-enter a coroutine (this happens in block/sheepdog.c and tests/test-coroutine.c). So pass the opaque value at creation time, for consistency with e.g. aio_bh_new. Mostly done with the following semantic patch: @ entry1 @ expression entry, arg, co; @@ - co = qemu_coroutine_create(entry); + co = qemu_coroutine_create(entry, arg); ... - qemu_coroutine_enter(co, arg); + qemu_coroutine_enter(co); @ entry2 @ expression entry, arg; identifier co; @@ - Coroutine *co = qemu_coroutine_create(entry); + Coroutine *co = qemu_coroutine_create(entry, arg); ... - qemu_coroutine_enter(co, arg); + qemu_coroutine_enter(co); @ entry3 @ expression entry, arg; @@ - qemu_coroutine_enter(qemu_coroutine_create(entry), arg); + qemu_coroutine_enter(qemu_coroutine_create(entry, arg)); @ reentry @ expression co; @@ - qemu_coroutine_enter(co, NULL); + qemu_coroutine_enter(co); except for the aforementioned few places where the semantic patch stumbled (as expected) and for test_co_queue, which would otherwise produce an uninitialized variable warning. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> |
||
---|---|---|
.. | ||
acl.h | ||
atomic.h | ||
base64.h | ||
bcd.h | ||
bitmap.h | ||
bitops.h | ||
bswap.h | ||
buffer.h | ||
compatfd.h | ||
compiler.h | ||
config-file.h | ||
coroutine_int.h | ||
coroutine.h | ||
crc32c.h | ||
cutils.h | ||
envlist.h | ||
error-report.h | ||
event_notifier.h | ||
fifo8.h | ||
fifo32.h | ||
fprintf-fn.h | ||
hbitmap.h | ||
help_option.h | ||
host-utils.h | ||
id.h | ||
int128.h | ||
iov.h | ||
log.h | ||
main-loop.h | ||
memfd.h | ||
mmap-alloc.h | ||
module.h | ||
notify.h | ||
option_int.h | ||
option.h | ||
osdep.h | ||
path.h | ||
processor.h | ||
qdist.h | ||
qht.h | ||
queue.h | ||
range.h | ||
ratelimit.h | ||
rcu_queue.h | ||
rcu.h | ||
readline.h | ||
rfifolock.h | ||
seqlock.h | ||
sockets.h | ||
thread-posix.h | ||
thread-win32.h | ||
thread.h | ||
throttle.h | ||
timed-average.h | ||
timer.h | ||
typedefs.h | ||
unicode.h | ||
uri.h | ||
xattr.h |