/
RNCWKProcessPoolManager.m
58 lines (47 loc) · 1.25 KB
/
RNCWKProcessPoolManager.m
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
/**
* Copyright (c) 2015-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#import <Foundation/Foundation.h>
#import "RNCWKProcessPoolManager.h"
@interface RNCWKProcessPoolManager() {
WKProcessPool *_sharedProcessPool;
NSMutableDictionary<NSString *, WKProcessPool *> *_pools;
}
@end
@implementation RNCWKProcessPoolManager
+ (id) sharedManager {
static RNCWKProcessPoolManager *_sharedManager = nil;
@synchronized(self) {
if(_sharedManager == nil) {
_sharedManager = [[super alloc] init];
}
return _sharedManager;
}
}
- (instancetype)init
{
if (self = [super init]) {
_pools = [NSMutableDictionary new];
}
return self;
}
- (WKProcessPool *)sharedProcessPool {
if (!_sharedProcessPool) {
_sharedProcessPool = [[WKProcessPool alloc] init];
}
return _sharedProcessPool;
}
- (WKProcessPool *)sharedProcessPoolForExperienceId:(NSString *)experienceId
{
if (!experienceId) {
return [self sharedProcessPool];
}
if (!_pools[experienceId]) {
_pools[experienceId] = [[WKProcessPool alloc] init];
}
return _pools[experienceId];
}
@end