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

25 lines
523 B
Mathematica
Raw Normal View History

2017-02-13 17:40:30 +01:00
//
// Copyright (c) 2017 Open Whisper Systems. All rights reserved.
//
2014-05-06 19:41:08 +02:00
#import "AnonymousTerminator.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