Signal-iOS/SignalServiceKit/Locking/UnfairLock.m
Harry bb083ca39c
Fold SignalCoreKit into SignalServiceKit
Co-authored-by: Adam Sharp <sharplet@signal.org>
2024-06-26 08:44:41 -07:00

48 lines
632 B
Objective-C

//
// Copyright 2024 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
//
#import "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