@@ -15,10 +15,11 @@ */ #include "config.h" #import "OFCondition.h" +#import "OFDate.h" #import "OFConditionBroadcastFailedException.h" #import "OFConditionSignalFailedException.h" #import "OFConditionStillWaitingException.h" #import "OFConditionWaitFailedException.h" @@ -61,10 +62,21 @@ if (!of_condition_wait(&_condition, &_mutex)) @throw [OFConditionWaitFailedException exceptionWithClass: [self class] condition: self]; } + +- (bool)waitForTimeInterval: (double)timeInterval +{ + return of_condition_timed_wait(&_condition, &_mutex, timeInterval); +} + +- (bool)waitUntilDate: (OFDate*)date +{ + return of_condition_timed_wait(&_condition, &_mutex, + [date timeIntervalSinceNow]); +} - (void)signal { if (!of_condition_signal(&_condition)) @throw [OFConditionSignalFailedException