static void _PrepareSessionManagement()

in Source/TNLURLSessionManager.m [1861:1890]


static void _PrepareSessionManagement()
{
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{

        // Threading

        sSynchronizeQueue = dispatch_queue_create("TNLURLSessionManager.synchronize.queue", DISPATCH_QUEUE_SERIAL);
        sSynchronizeOperationQueue = [[NSOperationQueue alloc] init];
        sSynchronizeOperationQueue.name = @"TNLURLSessionManager.synchronize.operation.queue";
        sSynchronizeOperationQueue.maxConcurrentOperationCount = 1;
        sSynchronizeOperationQueue.qualityOfService = (NSQualityOfServiceUtility + NSQualityOfServiceUserInitiated / 2);
        sSynchronizeOperationQueue.underlyingQueue = sSynchronizeQueue;
        sURLSessionTaskOperationQueue = [[NSOperationQueue alloc] init];
        sURLSessionTaskOperationQueue.name = @"TNLURLSessionManager.task.operation.queue";
        sURLSessionTaskOperationQueue.maxConcurrentOperationCount = NSOperationQueueDefaultMaxConcurrentOperationCount;
        sURLSessionTaskOperationQueue.qualityOfService = (NSQualityOfServiceUtility + NSQualityOfServiceUserInitiated / 2);

        // State

        sOutstandingBackoffOperations = [[NSMutableDictionary alloc] init];
        sOutstandingSerializeOperations = [[NSMutableDictionary alloc] init];
        sSessionContextsDelegate = [[TNLURLSessionContextLRUCacheDelegate alloc] init];
        sAppSessionContexts = [[TNLLRUCache alloc] initWithEntries:nil delegate:sSessionContextsDelegate];
        sBackgroundSessionContexts = [[TNLLRUCache alloc] initWithEntries:nil delegate:sSessionContextsDelegate];
        sActiveURLSessionTaskOperations = [[NSMutableSet alloc] init];
        sBackgroundSessionCompletionHandlerDictionary = [[NSMutableDictionary alloc] init];
        sBackoffBehaviorProvider = [[TNLSimpleBackoffBehaviorProvider alloc] init];
    });
}