bool locker::try_lock() { #ifdef ACL_HAS_SPINLOCK if (spinlock_) { if (pthread_spin_trylock(spinlock_) != 0) return false; } else #endif if (mutex_) { if (acl_pthread_mutex_trylock(mutex_) != 0) return false; } if (fHandle_ == ACL_FILE_INVALID) return true; int operation = ACL_FLOCK_OP_EXCLUSIVE | ACL_FLOCK_OP_NOWAIT; if (acl_myflock(fHandle_, ACL_FLOCK_STYLE_FCNTL, operation) == 0) return true; if (mutex_) acl_assert(acl_pthread_mutex_unlock(mutex_) == 0); return false; }
bool thread_mutex::try_lock(void) { return acl_pthread_mutex_trylock(mutex_) == 0; }