diff --git a/Libraries/LibPthread/pthread.cpp b/Libraries/LibPthread/pthread.cpp index 009e7018d7..8c35406dc1 100644 --- a/Libraries/LibPthread/pthread.cpp +++ b/Libraries/LibPthread/pthread.cpp @@ -111,6 +111,15 @@ int pthread_mutex_lock(pthread_mutex_t* mutex) } } +int pthread_mutex_trylock(pthread_mutex_t* mutex) +{ + auto* atomic = reinterpret_cast*>(mutex); + u32 expected = false; + if (atomic->compare_exchange_strong(expected, true, AK::memory_order_acq_rel)) + return 0; + return EBUSY; +} + int pthread_mutex_unlock(pthread_mutex_t* mutex) { auto* atomic = reinterpret_cast*>(mutex);