ObjFW
Loading...
Searching...
No Matches
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
23OF_ASSUME_NONNULL_BEGIN
24
25@class OFDate;
26
32OF_SUBCLASSING_RESTRICTED
34{
35 OFPlainCondition _condition;
36 bool _conditionInitialized;
37}
38
44+ (instancetype)condition;
45
55- (void)wait;
56
57#if defined(OF_AMIGAOS) || defined(DOXYGEN)
68- (void)waitForConditionOrExecSignal: (ULONG *)signalMask;
69#endif
70
82- (bool)waitForTimeInterval: (OFTimeInterval)timeInterval;
83
84#if defined(OF_AMIGAOS) || defined(DOXYGEN)
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)
127- (bool)waitUntilDate: (OFDate *)date orExecSignal: (ULONG *)signalMask;
128#endif
129
135- (void)signal;
136
142- (void)broadcast;
143@end
144
145OF_ASSUME_NONNULL_END
double OFTimeInterval
A time interval in seconds.
Definition OFObject.h:154
A class implementing a condition variable for thread synchronization.
Definition OFCondition.h:34
A class for storing, accessing and comparing dates.
Definition OFDate.h:34
A class for creating mutual exclusions.
Definition OFMutex.h:38