diff --git a/Process.h.in b/Process.h.in index c5ebc97f4..96563a223 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 74029553b..b57798220 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 a18ea2748..2b93e6963 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(); +}