private bool CanReleaseShell(ShellSettings settings) { if (settings.get_State() != 3) { return(true); } if (!this._shellContexts.TryGetValue(settings.get_Name(), out V_0)) { return(false); } return(V_0.get_ActiveScopes() == 0); }
private void RegisterShellSettings(ShellSettings settings) { if (this._logger.IsEnabled(1)) { stackVariable8 = this._logger; stackVariable11 = new object[1]; stackVariable11[0] = settings.get_Name(); LoggerExtensions.LogDebug(stackVariable8, "Registering shell context for tenant '{TenantName}'", stackVariable11); } this._runningShellTable.Add(settings); return; }
private Task <ShellContext> CreateShellContextAsync(ShellSettings settings) { if (settings.get_State() == null) { if (this._logger.IsEnabled(1)) { stackVariable56 = this._logger; stackVariable59 = new object[1]; stackVariable59[0] = settings.get_Name(); LoggerExtensions.LogDebug(stackVariable56, "Creating shell context for tenant '{TenantName}' setup", stackVariable59); } return(this._shellContextFactory.CreateSetupContextAsync(settings)); } if (settings.get_State() == 3) { if (this._logger.IsEnabled(1)) { stackVariable40 = this._logger; stackVariable43 = new object[1]; stackVariable43[0] = settings.get_Name(); LoggerExtensions.LogDebug(stackVariable40, "Creating disabled shell context for tenant '{TenantName}'", stackVariable43); } stackVariable36 = new ShellContext(); stackVariable36.set_Settings(settings); return(Task.FromResult <ShellContext>(stackVariable36)); } if (settings.get_State() != 2 && settings.get_State() != 1) { throw new InvalidOperationException(string.Concat("Unexpected shell state for ", settings.get_Name())); } if (this._logger.IsEnabled(1)) { stackVariable17 = this._logger; stackVariable20 = new object[1]; stackVariable20[0] = settings.get_Name(); LoggerExtensions.LogDebug(stackVariable17, "Creating shell context for tenant '{TenantName}'", stackVariable20); } return(this._shellContextFactory.CreateShellContextAsync(settings)); }
public Task ReleaseShellContextAsync(ShellSettings settings) { if (!this.CanReleaseShell(settings)) { return(Task.get_CompletedTask()); } if (this._shellContexts.TryRemove(settings.get_Name(), out V_0)) { V_0.Release(); } stackVariable10 = this._shellContexts; stackVariable13 = V_0.get_Settings().get_Name(); stackVariable14 = new ShellContext.PlaceHolder(); stackVariable14.set_Settings(settings); dummyVar0 = stackVariable10.TryAdd(stackVariable13, stackVariable14); return(Task.get_CompletedTask()); }
public void Add(ShellSettings settings) { if (string.op_Equality("Default", settings.get_Name())) { this._default = settings; } stackVariable6 = this.GetAllHostsAndPrefix(settings); V_0 = new Dictionary <string, ShellSettings>(); V_1 = stackVariable6; V_2 = 0; while (V_2 < (int)V_1.Length) { V_3 = V_1[V_2]; if (this._hasStarMapping) { stackVariable19 = true; } else { stackVariable19 = V_3.StartsWith('*'); } this._hasStarMapping = stackVariable19; dummyVar0 = V_0.TryAdd(V_3, settings); V_2 = V_2 + 1; } V_4 = this; V_5 = false; try { Monitor.Enter(V_4, ref V_5); this._shellsByHostAndPrefix = this._shellsByHostAndPrefix.SetItems(V_0); } finally { if (V_5) { Monitor.Exit(V_4); } } return; }