diff --git a/lldb/source/Initialization/SystemLifetimeManager.cpp b/lldb/source/Initialization/SystemLifetimeManager.cpp
index 0f61622..4d27178 100644
--- a/lldb/source/Initialization/SystemLifetimeManager.cpp
+++ b/lldb/source/Initialization/SystemLifetimeManager.cpp
@@ -16,43 +16,38 @@
 
 using namespace lldb_private;
 
-SystemLifetimeManager::SystemLifetimeManager() : m_mutex(), m_initialized(false)
-{
+SystemLifetimeManager::SystemLifetimeManager()
+    : m_mutex(), m_initialized(false) {}
+
+SystemLifetimeManager::~SystemLifetimeManager() {
+  assert(!m_initialized &&
+         "SystemLifetimeManager destroyed without calling Terminate!");
 }
 
-SystemLifetimeManager::~SystemLifetimeManager()
-{
-    assert(!m_initialized && "SystemLifetimeManager destroyed without calling Terminate!");
+void SystemLifetimeManager::Initialize(
+    std::unique_ptr<SystemInitializer> initializer,
+    LoadPluginCallbackType plugin_callback) {
+  std::lock_guard<std::recursive_mutex> guard(m_mutex);
+  if (!m_initialized) {
+    assert(!m_initializer && "Attempting to call "
+                             "SystemLifetimeManager::Initialize() when it is "
+                             "already initialized");
+    m_initialized = true;
+    m_initializer = std::move(initializer);
+
+    m_initializer->Initialize();
+    Debugger::Initialize(plugin_callback);
+  }
 }
 
-void
-SystemLifetimeManager::Initialize(std::unique_ptr<SystemInitializer> initializer,
-                                  LoadPluginCallbackType plugin_callback)
-{
-    std::lock_guard<std::recursive_mutex> guard(m_mutex);
-    if (!m_initialized)
-    {
-        assert(!m_initializer &&
-               "Attempting to call SystemLifetimeManager::Initialize() when it is already initialized");
-        m_initialized = true;
-        m_initializer = std::move(initializer);
+void SystemLifetimeManager::Terminate() {
+  std::lock_guard<std::recursive_mutex> guard(m_mutex);
 
-        m_initializer->Initialize();
-        Debugger::Initialize(plugin_callback);
-    }
-}
+  if (m_initialized) {
+    Debugger::Terminate();
+    m_initializer->Terminate();
 
-void
-SystemLifetimeManager::Terminate()
-{
-    std::lock_guard<std::recursive_mutex> guard(m_mutex);
-
-    if (m_initialized)
-    {
-        Debugger::Terminate();
-        m_initializer->Terminate();
-
-        m_initializer.reset();
-        m_initialized = false;
-    }
+    m_initializer.reset();
+    m_initialized = false;
+  }
 }
