diff --git a/Source/cmUVProcessChain.cxx b/Source/cmUVProcessChain.cxx
index 257c054..c2bb11e 100644
--- a/Source/cmUVProcessChain.cxx
+++ b/Source/cmUVProcessChain.cxx
@@ -420,3 +420,8 @@
   }
   return nullptr;
 }
+
+bool cmUVProcessChain::Finished() const
+{
+  return this->Data->ProcessesCompleted >= this->Data->Processes.size();
+}
diff --git a/Source/cmUVProcessChain.h b/Source/cmUVProcessChain.h
index 3ade3fd..9e4558e 100644
--- a/Source/cmUVProcessChain.h
+++ b/Source/cmUVProcessChain.h
@@ -90,6 +90,7 @@
   bool Wait(int64_t milliseconds = -1);
   std::vector<const Status*> GetStatus() const;
   const Status* GetStatus(std::size_t index) const;
+  bool Finished() const;
 
 private:
   friend class cmUVProcessChainBuilder;
diff --git a/Tests/CMakeLib/testUVProcessChain.cxx b/Tests/CMakeLib/testUVProcessChain.cxx
index cbb4384..ce6cd6d 100644
--- a/Tests/CMakeLib/testUVProcessChain.cxx
+++ b/Tests/CMakeLib/testUVProcessChain.cxx
@@ -148,6 +148,10 @@
     printResults(status, status1);
     return false;
   }
+  if (chain->Finished()) {
+    std::cout << "Finished() returned true, should be false" << std::endl;
+    return false;
+  }
 
   if (chain->Wait(6000)) {
     std::cout << "Wait() returned true, should be false" << std::endl;
@@ -159,6 +163,10 @@
     printResults(status, status2);
     return false;
   }
+  if (chain->Finished()) {
+    std::cout << "Finished() returned true, should be false" << std::endl;
+    return false;
+  }
 
   if (!chain->Wait()) {
     std::cout << "Wait() returned false, should be true" << std::endl;
@@ -170,6 +178,10 @@
     printResults(status, status3);
     return false;
   }
+  if (!chain->Finished()) {
+    std::cout << "Finished() returned false, should be true" << std::endl;
+    return false;
+  }
 
   return true;
 }
