ObjFW
OFCondition.h
1 /*
2  * Copyright (c) 2008, 2009, 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017
3  * Jonathan Schleifer <js@heap.zone>
4  *
5  * All rights reserved.
6  *
7  * This file is part of ObjFW. It may be distributed under the terms of the
8  * Q Public License 1.0, which can be found in the file LICENSE.QPL included in
9  * the packaging of this file.
10  *
11  * Alternatively, it may be distributed under the terms of the GNU General
12  * Public License, either version 2 or 3, which can be found in the file
13  * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this
14  * file.
15  */
16 
17 #import "OFMutex.h"
18 
19 OF_ASSUME_NONNULL_BEGIN
20 
21 @class OFDate;
22 
28 @interface OFCondition: OFMutex
29 {
30  of_condition_t _condition;
31  bool _conditionInitialized;
32 }
33 
39 + (instancetype)condition;
40 
48 - (void)wait;
49 
60 - (bool)waitForTimeInterval: (of_time_interval_t)timeInterval;
61 
72 - (bool)waitUntilDate: (OFDate *)date;
73 
77 - (void)signal;
78 
82 - (void)broadcast;
83 @end
84 
85 OF_ASSUME_NONNULL_END
void broadcast()
Signals all threads to continue.
Definition: OFCondition.m:84
void wait()
Blocks the current thread until another thread calls signal or broadcast.
Definition: OFCondition.m:59
void signal()
Signals the next waiting thread to continue.
Definition: OFCondition.m:77
A class for creating mutual exclusions.
Definition: OFMutex.h:29
double of_time_interval_t
A time interval in seconds.
Definition: OFObject.h:91
A class for storing, accessing and comparing dates.
Definition: OFDate.h:30
instancetype condition()
Creates a new condition.
Definition: OFCondition.m:29
A class implementing a condition variable for thread synchronization.
Definition: OFCondition.h:28