session-ios/Signal/src/util/protocols/utilities/AnonymousTerminator.m

22 lines
474 B
Mathematica
Raw Normal View History

2014-05-06 19:41:08 +02:00
#import "AnonymousTerminator.h"
#import "Constraints.h"
@implementation AnonymousTerminator
+ (AnonymousTerminator *)cancellerWithCancel:(void (^)(void))terminate {
ows_require(terminate != nil);
AnonymousTerminator *c = [AnonymousTerminator new];
c->_terminateBlock = terminate;
2014-05-06 19:41:08 +02:00
return c;
}
- (void)terminate {
2014-05-06 19:41:08 +02:00
@synchronized(self) {
if (alreadyCalled)
return;
2014-05-06 19:41:08 +02:00
alreadyCalled = true;
}
_terminateBlock();
}
@end