From 36d8666f44a75a6debb92c86c20f25d929d79cd1 Mon Sep 17 00:00:00 2001
From: Zack Galbreath <zack.galbreath@kitware.com>
Date: Tue, 8 Mar 2016 09:41:57 -0500
Subject: [PATCH] Process: Add function to reset the start time of a process

Change-Id: I7d588cb060ea17ed4221c55b866cbbebab983e3c
---
 Process.h.in   |  7 +++++++
 ProcessUNIX.c  | 11 +++++++++++
 ProcessWin32.c | 11 +++++++++++
 3 files changed, 29 insertions(+)

diff --git a/Process.h.in b/Process.h.in
index c5ebc97..96563a2 100644
--- a/Process.h.in
+++ b/Process.h.in
@@ -77,6 +77,7 @@
 # define kwsysProcess_WaitForExit               kwsys_ns(Process_WaitForExit)
 # define kwsysProcess_Interrupt                 kwsys_ns(Process_Interrupt)
 # define kwsysProcess_Kill                      kwsys_ns(Process_Kill)
+# define kwsysProcess_ResetStartTime            kwsys_ns(Process_ResetStartTime)
 #endif
 
 #if defined(__cplusplus)
@@ -392,6 +393,11 @@ kwsysEXPORT void kwsysProcess_Interrupt(kwsysProcess* cp);
  */
 kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp);
 
+/**
+ * Reset the start time of the child process to the current time.
+ */
+kwsysEXPORT void kwsysProcess_ResetStartTime(kwsysProcess* cp);
+
 #if defined(__cplusplus)
 } /* extern "C" */
 #endif
@@ -456,6 +462,7 @@ kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp);
 #  undef kwsysProcess_WaitForExit
 #  undef kwsysProcess_Interrupt
 #  undef kwsysProcess_Kill
+#  undef kwsysProcess_ResetStartTime
 # endif
 #endif
 
diff --git a/ProcessUNIX.c b/ProcessUNIX.c
index 7402955..b577982 100644
--- a/ProcessUNIX.c
+++ b/ProcessUNIX.c
@@ -3058,3 +3058,14 @@ static void kwsysProcessesSignalHandler(int signum
 
   errno = old_errno;
 }
+
+/*--------------------------------------------------------------------------*/
+void kwsysProcess_ResetStartTime(kwsysProcess* cp)
+{
+  if(!cp)
+    {
+    return;
+    }
+  /* Reset start time. */
+  cp->StartTime = kwsysProcessTimeGetCurrent();
+}
diff --git a/ProcessWin32.c b/ProcessWin32.c
index a18ea27..2b93e69 100644
--- a/ProcessWin32.c
+++ b/ProcessWin32.c
@@ -3017,3 +3017,14 @@ static BOOL WINAPI kwsysCtrlHandler(DWORD dwCtrlType)
   /* Continue on to default Ctrl handler (which calls ExitProcess).  */
   return FALSE;
 }
+
+/*--------------------------------------------------------------------------*/
+void kwsysProcess_ResetStartTime(kwsysProcess* cp)
+{
+  if(!cp)
+    {
+    return;
+    }
+  /* Reset start time. */
+  cp->StartTime = kwsysProcessTimeGetCurrent();
+}
-- 
GitLab