public Task <CciModuleSource> GetWhiteSourceAsync(string moduleName) { CciModuleSource cciModuleSource = TryTake(moduleName); if (cciModuleSource != null) { _log.Debug("Whitecache#" + PrintCacheState(_moduleNameToFileName[moduleName]) + "Taken immediately: " + cciModuleSource.Guid); return(Task.FromResult(cciModuleSource)); } else { var client = new WhiteClient(moduleName); if (_error != null) { client.Tcs.SetException(_error); _log.Debug("Whitecache#" + PrintCacheState(_moduleNameToFileName[moduleName]) + "Error occurred."); } else { _clients.Enqueue(client); _log.Debug("Whitecache#" + PrintCacheState(_moduleNameToFileName[moduleName]) + "Enqueued waiting client."); } return(client.Tcs.Task); } }
public Task<CciModuleSource> GetWhiteSourceAsync(string moduleName) { CciModuleSource cciModuleSource = TryTake(moduleName); if (cciModuleSource != null) { _log.Debug("Whitecache#" + PrintCacheState(_moduleNameToFileName[moduleName]) + "Taken immediately: "+ cciModuleSource.Guid); return Task.FromResult(cciModuleSource); } else { var client = new WhiteClient(moduleName); if (_error != null) { client.Tcs.SetException(_error); _log.Debug("Whitecache#" + PrintCacheState(_moduleNameToFileName[moduleName]) + "Error occurred."); } else { _clients.Enqueue(client); _log.Debug("Whitecache#"+ PrintCacheState(_moduleNameToFileName[moduleName]) +"Enqueued waiting client."); } return client.Tcs.Task; } }