diff --git a/src/PowerShellEditorServices.Hosting/Commands/StartEditorServicesCommand.cs b/src/PowerShellEditorServices.Hosting/Commands/StartEditorServicesCommand.cs index 6f2ec8851..3583d7988 100644 --- a/src/PowerShellEditorServices.Hosting/Commands/StartEditorServicesCommand.cs +++ b/src/PowerShellEditorServices.Hosting/Commands/StartEditorServicesCommand.cs @@ -233,7 +233,7 @@ protected override void EndProcessing() // Create the configuration from parameters EditorServicesConfig editorServicesConfig = CreateConfigObject(); - using EditorServicesLoader psesLoader = EditorServicesLoader.Create(_logger, editorServicesConfig, SessionDetailsPath, _loggerUnsubscribers); + EditorServicesLoader psesLoader = EditorServicesLoader.Create(_logger, editorServicesConfig, SessionDetailsPath, _loggerUnsubscribers); _logger.Log(PsesLogLevel.Debug, "Loading EditorServices"); // Synchronously start editor services and wait here until it shuts down. psesLoader.LoadAndRunEditorServicesAsync().GetAwaiter().GetResult(); diff --git a/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs b/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs index eea23353c..0f0fcefa8 100644 --- a/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs +++ b/src/PowerShellEditorServices.Hosting/EditorServicesLoader.cs @@ -29,7 +29,7 @@ namespace Microsoft.PowerShell.EditorServices.Hosting /// In particular, this class wraps the point where Editor Services is safely loaded /// in a way that separates its dependencies from the calling context. /// - public sealed class EditorServicesLoader : IDisposable + public sealed class EditorServicesLoader { #if !CoreCLR // TODO: Well, we're saying we need 4.8 here but we're building for 4.6.2... @@ -172,8 +172,6 @@ public static EditorServicesLoader Create( private readonly Version _powerShellVersion; - private EditorServicesRunner _editorServicesRunner; - private EditorServicesLoader( HostLogger logger, EditorServicesConfig hostConfig, @@ -217,20 +215,10 @@ public Task LoadAndRunEditorServicesAsync() _logger.Log(PsesLogLevel.Information, "Starting PowerShell Editor Services"); - _editorServicesRunner = new EditorServicesRunner(_logger, _hostConfig, _sessionFileWriter, _loggersToUnsubscribe); + EditorServicesRunner editorServicesRunner = new(_logger, _hostConfig, _sessionFileWriter, _loggersToUnsubscribe); // The trigger method for Editor Services - return Task.Run(_editorServicesRunner.RunUntilShutdown); - } - - public void Dispose() - { - _logger.Log(PsesLogLevel.Trace, "Loader disposed"); - _editorServicesRunner?.Dispose(); - - // TODO: - // Remove assembly resolve events - // This is not high priority, since the PSES process shouldn't be reused + return Task.Run(editorServicesRunner.RunUntilShutdown); } private static void LoadEditorServices() => diff --git a/src/PowerShellEditorServices.Hosting/Internal/EditorServicesRunner.cs b/src/PowerShellEditorServices.Hosting/Internal/EditorServicesRunner.cs index 5d8c368c9..19a0bea6a 100644 --- a/src/PowerShellEditorServices.Hosting/Internal/EditorServicesRunner.cs +++ b/src/PowerShellEditorServices.Hosting/Internal/EditorServicesRunner.cs @@ -18,7 +18,7 @@ namespace Microsoft.PowerShell.EditorServices.Hosting /// cref="Microsoft.Extensions.Logging"/> and . /// - internal class EditorServicesRunner : IDisposable + internal class EditorServicesRunner { private readonly HostLogger _logger; @@ -68,15 +68,6 @@ public Task RunUntilShutdown() return runAndAwaitShutdown; } - /// - /// TODO: This class probably should not be as the primary - /// intention of that interface is to provide cleanup of unmanaged resources, which the - /// logger certainly is not. Nor is this class used with a . It is - /// only because of the use of that this class is also - /// disposable, and instead that class should be fixed. - /// - public void Dispose() => _serverFactory.Dispose(); - /// /// This is the servers' entry point, e.g. main, as it instantiates, runs and waits /// for the LSP and debug servers at the heart of Editor Services. Uses /// Factory for creating the LSP server and debug server instances. /// - internal sealed class EditorServicesServerFactory : IDisposable + internal sealed class EditorServicesServerFactory { private readonly HostLogger _hostLogger; @@ -125,8 +125,5 @@ public PsesDebugServer CreateDebugServerForTempSession( serviceProvider, isTemp: true); } - - // TODO: Clean up host logger? Shouldn't matter since we start a new process after shutdown. - public void Dispose() { } } }