mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-23 19:49:43 +00:00
coroutine-lock: add missing coroutine_fn annotations
Callers of coroutine_fn must be coroutine_fn themselves, or the call must be within "if (qemu_in_coroutine())". Apply coroutine_fn to functions where this holds. Reviewed-by: Alberto Faria <afaria@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20220922084924.201610-23-pbonzini@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
06753a0750
commit
46cd09dee1
@ -135,7 +135,7 @@ typedef struct CoWaitRecord {
|
||||
QSLIST_ENTRY(CoWaitRecord) next;
|
||||
} CoWaitRecord;
|
||||
|
||||
static void push_waiter(CoMutex *mutex, CoWaitRecord *w)
|
||||
static void coroutine_fn push_waiter(CoMutex *mutex, CoWaitRecord *w)
|
||||
{
|
||||
w->co = qemu_coroutine_self();
|
||||
QSLIST_INSERT_HEAD_ATOMIC(&mutex->from_push, w, next);
|
||||
@ -332,7 +332,7 @@ void qemu_co_rwlock_init(CoRwlock *lock)
|
||||
}
|
||||
|
||||
/* Releases the internal CoMutex. */
|
||||
static void qemu_co_rwlock_maybe_wake_one(CoRwlock *lock)
|
||||
static void coroutine_fn qemu_co_rwlock_maybe_wake_one(CoRwlock *lock)
|
||||
{
|
||||
CoRwTicket *tkt = QSIMPLEQ_FIRST(&lock->tickets);
|
||||
Coroutine *co = NULL;
|
||||
@ -365,7 +365,7 @@ static void qemu_co_rwlock_maybe_wake_one(CoRwlock *lock)
|
||||
}
|
||||
}
|
||||
|
||||
void qemu_co_rwlock_rdlock(CoRwlock *lock)
|
||||
void coroutine_fn qemu_co_rwlock_rdlock(CoRwlock *lock)
|
||||
{
|
||||
Coroutine *self = qemu_coroutine_self();
|
||||
|
||||
@ -390,7 +390,7 @@ void qemu_co_rwlock_rdlock(CoRwlock *lock)
|
||||
self->locks_held++;
|
||||
}
|
||||
|
||||
void qemu_co_rwlock_unlock(CoRwlock *lock)
|
||||
void coroutine_fn qemu_co_rwlock_unlock(CoRwlock *lock)
|
||||
{
|
||||
Coroutine *self = qemu_coroutine_self();
|
||||
|
||||
@ -408,7 +408,7 @@ void qemu_co_rwlock_unlock(CoRwlock *lock)
|
||||
qemu_co_rwlock_maybe_wake_one(lock);
|
||||
}
|
||||
|
||||
void qemu_co_rwlock_downgrade(CoRwlock *lock)
|
||||
void coroutine_fn qemu_co_rwlock_downgrade(CoRwlock *lock)
|
||||
{
|
||||
qemu_co_mutex_lock(&lock->mutex);
|
||||
assert(lock->owners == -1);
|
||||
@ -418,7 +418,7 @@ void qemu_co_rwlock_downgrade(CoRwlock *lock)
|
||||
qemu_co_rwlock_maybe_wake_one(lock);
|
||||
}
|
||||
|
||||
void qemu_co_rwlock_wrlock(CoRwlock *lock)
|
||||
void coroutine_fn qemu_co_rwlock_wrlock(CoRwlock *lock)
|
||||
{
|
||||
Coroutine *self = qemu_coroutine_self();
|
||||
|
||||
@ -438,7 +438,7 @@ void qemu_co_rwlock_wrlock(CoRwlock *lock)
|
||||
self->locks_held++;
|
||||
}
|
||||
|
||||
void qemu_co_rwlock_upgrade(CoRwlock *lock)
|
||||
void coroutine_fn qemu_co_rwlock_upgrade(CoRwlock *lock)
|
||||
{
|
||||
qemu_co_mutex_lock(&lock->mutex);
|
||||
assert(lock->owners > 0);
|
||||
|
Loading…
Reference in New Issue
Block a user