// TODO: Break stop down into two-phases. Pre-stop alerts all modules about shutdown and does logging. // Stop will wait for all modules to indicate readiness or, after a timeout, force shutdown. public void Stop() { Log.LogInformation("Core is shutting down"); Modules.StopAll(this); CoreModule.Stop(); _started = false; // TODO: Should we publish a Stop event? Is anybody listening at this point? }