Cog/Audio/Utils/Semaphore.m
Christopher Snowhill 85c7073649 Reformat my own source code with clang-format
Signed-off-by: Christopher Snowhill <kode54@gmail.com>
2022-02-06 21:49:27 -08:00

41 lines
687 B
Objective-C

//
// Semaphore.m
// Cog
//
// Created by Vincent Spader on 8/2/05.
// Copyright 2005 Vincent Spader. All rights reserved.
//
#import "Semaphore.h"
@implementation Semaphore
- (id)init {
self = [super init];
if(self) {
semaphore_create(mach_task_self(), &semaphore, SYNC_POLICY_FIFO, 0);
}
return self;
}
- (void)signal {
semaphore_signal_all(semaphore);
}
- (void)timedWait:(int)microseconds {
mach_timespec_t timeout = { 0, microseconds * 1000UL };
semaphore_timedwait(semaphore, timeout);
}
- (void)wait {
mach_timespec_t t = { 2.0, 0.0 }; // 2 second timeout
semaphore_timedwait(semaphore, t);
}
- (void)waitIndefinitely {
semaphore_wait(semaphore);
}
@end