public async Task <ExecutionResult> ResetAsync(bool initialize = true) { try { string lastWorkingDirectory = null; if (Session.IsHostRunning) { // Remember directory in case it is user-initiated reset // so we can restore it when host completes the restart. lastWorkingDirectory = await Session.GetRWorkingDirectoryAsync(); await SaveStateAsync(); WriteErrorLine(Environment.NewLine + Resources.MicrosoftRHostStopping); await Session.StopHostAsync(true); } if (!initialize) { return(ExecutionResult.Success); } WriteErrorLine(Environment.NewLine + Resources.MicrosoftRHostStarting); return(await InitializeAsync(isResetting : true, workingDirectory : lastWorkingDirectory)); } catch (Exception ex) { Trace.Fail($"Exception in RInteractiveEvaluator.ResetAsync\n{ex}"); return(ExecutionResult.Failure); } }