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