session-ios/SessionUtilitiesKit/General/UnfairLock.m

47 lines
636 B
Objective-C

//
// Copyright (c) 2021 Open Whisper Systems. All rights reserved.
//
#import <SessionUtilitiesKit/UnfairLock.h>
#import <os/lock.h>
@implementation UnfairLock {
os_unfair_lock _lock;
}
- (instancetype)init
{
self = [super init];
if (self) {
_lock = OS_UNFAIR_LOCK_INIT;
}
return self;
}
- (void)lock
{
os_unfair_lock_lock(&_lock);
}
- (void)unlock
{
os_unfair_lock_unlock(&_lock);
}
- (BOOL)tryLock
{
return os_unfair_lock_trylock(&_lock);
}
- (void)assertOwner
{
os_unfair_lock_assert_owner(&_lock);
}
- (void)assertNotOwner
{
os_unfair_lock_assert_not_owner(&_lock);
}
@end