ObjFW
OFCondition.h
1 /*
2  * Copyright (c) 2008-2024 Jonathan Schleifer <js@nil.im>
3  *
4  * All rights reserved.
5  *
6  * This program is free software: you can redistribute it and/or modify it
7  * under the terms of the GNU Lesser General Public License version 3.0 only,
8  * as published by the Free Software Foundation.
9  *
10  * This program is distributed in the hope that it will be useful, but WITHOUT
11  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12  * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13  * version 3.0 for more details.
14  *
15  * You should have received a copy of the GNU Lesser General Public License
16  * version 3.0 along with this program. If not, see
17  * <https://www.gnu.org/licenses/>.
18  */
19 
20 #import "OFMutex.h"
21 #import "OFPlainCondition.h"
22 
23 OF_ASSUME_NONNULL_BEGIN
24 
25 @class OFDate;
26 
32 OF_SUBCLASSING_RESTRICTED
33 @interface OFCondition: OFMutex
34 {
35  OFPlainCondition _condition;
36  bool _conditionInitialized;
37 }
38 
44 + (instancetype)condition;
45 
55 - (void)wait;
56 
57 #if defined(OF_AMIGAOS) || defined(DOXYGEN)
58 
68 - (void)waitForConditionOrExecSignal: (ULONG *)signalMask;
69 #endif
70 
82 - (bool)waitForTimeInterval: (OFTimeInterval)timeInterval;
83 
84 #if defined(OF_AMIGAOS) || defined(DOXYGEN)
85 
97 - (bool)waitForTimeInterval: (OFTimeInterval)timeInterval
98  orExecSignal: (ULONG *)signalMask;
99 #endif
100 
112 - (bool)waitUntilDate: (OFDate *)date;
113 
114 #if defined(OF_AMIGAOS) || defined(DOXYGEN)
115 
127 - (bool)waitUntilDate: (OFDate *)date orExecSignal: (ULONG *)signalMask;
128 #endif
129 
135 - (void)signal;
136 
142 - (void)broadcast;
143 @end
144 
145 OF_ASSUME_NONNULL_END
A class for creating mutual exclusions.
Definition: OFMutex.h:36
A class for storing, accessing and comparing dates.
Definition: OFDate.h:33
double OFTimeInterval
A time interval in seconds.
Definition: OFObject.h:154
A class implementing a condition variable for thread synchronization.
Definition: OFCondition.h:33