Skip to content

Commit

Permalink
Make shared CA transaction queue variable extern so it's actually sha…
Browse files Browse the repository at this point in the history
…red (#1397)
  • Loading branch information
Adlai-Holler committed Mar 12, 2019
1 parent 5490d4d commit abe46b0
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 5 deletions.
11 changes: 6 additions & 5 deletions Source/ASRunLoopQueue.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,13 +68,14 @@ AS_SUBCLASSING_RESTRICTED

@end

extern ASCATransactionQueue *_ASSharedCATransactionQueue;
extern dispatch_once_t _ASSharedCATransactionQueueOnceToken;

NS_INLINE ASCATransactionQueue *ASCATransactionQueueGet(void) {
static ASCATransactionQueue *q;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
q = [[ASCATransactionQueue alloc] init];
dispatch_once(&_ASSharedCATransactionQueueOnceToken, ^{
_ASSharedCATransactionQueue = [[ASCATransactionQueue alloc] init];
});
return q;
return _ASSharedCATransactionQueue;
}

@interface ASDeallocQueue : NSObject
Expand Down
3 changes: 3 additions & 0 deletions Source/ASRunLoopQueue.mm
Original file line number Diff line number Diff line change
Expand Up @@ -354,6 +354,9 @@ @implementation ASCATransactionQueue
// but after most other scheduled work on the runloop has processed.
static int const kASASCATransactionQueueOrder = 1000000;

ASCATransactionQueue *_ASSharedCATransactionQueue;
dispatch_once_t _ASSharedCATransactionQueueOnceToken;

- (instancetype)init
{
if (self = [super init]) {
Expand Down

0 comments on commit abe46b0

Please sign in to comment.