common/mutex: Return true, if unlocked.

Signed-off-by: iabdalkader <i.abdalkader@gmail.com>
This commit is contained in:
iabdalkader 2025-09-14 21:49:34 +02:00
parent 515d26c153
commit 6d28ea730e
2 changed files with 4 additions and 2 deletions

View File

@ -53,8 +53,10 @@ bool mutex_try_lock_fair(mutex_t *m, size_t tid) {
return false; return false;
} }
void mutex_unlock(mutex_t *m, size_t tid) { bool mutex_unlock(mutex_t *m, size_t tid) {
if (atomic_load_explicit(&m->tid, memory_order_acquire) == tid) { if (atomic_load_explicit(&m->tid, memory_order_acquire) == tid) {
atomic_flag_clear_explicit(&m->lock, memory_order_release); atomic_flag_clear_explicit(&m->lock, memory_order_release);
return true;
} }
return false;
} }

View File

@ -48,5 +48,5 @@ void mutex_lock(mutex_t *mutex, size_t tid);
bool mutex_try_lock(mutex_t *mutex, size_t tid); bool mutex_try_lock(mutex_t *mutex, size_t tid);
// Prevents a thread from locking twice in a row. // Prevents a thread from locking twice in a row.
bool mutex_try_lock_fair(mutex_t *mutex, size_t tid); bool mutex_try_lock_fair(mutex_t *mutex, size_t tid);
void mutex_unlock(mutex_t *mutex, size_t tid); bool mutex_unlock(mutex_t *mutex, size_t tid);
#endif // __MUTEX_H__ #endif // __MUTEX_H__