From 782d287d891522dec8e460297f81cb5a8fbe33dc Mon Sep 17 00:00:00 2001
From: Folke Lemaitre <folke.lemaitre@gmail.com>
Date: Tue, 29 Nov 2022 07:56:59 +0100
Subject: [PATCH] fix: make sure we have ran on_exit before returning
 is_done=true

---
 lua/lazy/manage/task/init.lua | 13 +++++--------
 1 file changed, 5 insertions(+), 8 deletions(-)

diff --git a/lua/lazy/manage/task/init.lua b/lua/lazy/manage/task/init.lua
index 72c3a5e..0296d18 100644
--- a/lua/lazy/manage/task/init.lua
+++ b/lua/lazy/manage/task/init.lua
@@ -53,12 +53,7 @@ function Task:is_done()
 end
 
 function Task:is_running()
-  for _, state in ipairs(self._running) do
-    if state() then
-      return true
-    end
-  end
-  return false
+  return self:has_started() and self._ended == nil
 end
 
 function Task:start()
@@ -78,8 +73,10 @@ end
 
 ---@private
 function Task:_check()
-  if self:is_running() then
-    return
+  for _, state in ipairs(self._running) do
+    if state() then
+      return
+    end
   end
   self._ended = vim.loop.hrtime()
   if self._opts.on_done then