diff options
Diffstat (limited to 'Source/kwsys/Process.h.in')
-rw-r--r-- | Source/kwsys/Process.h.in | 28 |
1 files changed, 25 insertions, 3 deletions
diff --git a/Source/kwsys/Process.h.in b/Source/kwsys/Process.h.in index 9f2485f..380d1b4 100644 --- a/Source/kwsys/Process.h.in +++ b/Source/kwsys/Process.h.in @@ -32,6 +32,7 @@ #define kwsysProcess_SetWorkingDirectory kwsys_ns(Process_SetWorkingDirectory) #define kwsysProcess_SetPipeFile kwsys_ns(Process_SetPipeFile) #define kwsysProcess_SetPipeShared kwsys_ns(Process_SetPipeShared) +#define kwsysProcess_Option_Detach kwsys_ns(Process_Option_Detach) #define kwsysProcess_Option_HideWindow kwsys_ns(Process_Option_HideWindow) #define kwsysProcess_GetOption kwsys_ns(Process_GetOption) #define kwsysProcess_SetOption kwsys_ns(Process_SetOption) @@ -43,6 +44,7 @@ #define kwsysProcess_State_Exited kwsys_ns(Process_State_Exited) #define kwsysProcess_State_Expired kwsys_ns(Process_State_Expired) #define kwsysProcess_State_Killed kwsys_ns(Process_State_Killed) +#define kwsysProcess_State_Disowned kwsys_ns(Process_State_Disowned) #define kwsysProcess_GetState kwsys_ns(Process_GetState) #define kwsysProcess_State_e kwsys_ns(Process_State_e) #define kwsysProcess_Exception_None kwsys_ns(Process_Exception_None) @@ -58,6 +60,7 @@ #define kwsysProcess_GetErrorString kwsys_ns(Process_GetErrorString) #define kwsysProcess_GetExceptionString kwsys_ns(Process_GetExceptionString) #define kwsysProcess_Execute kwsys_ns(Process_Execute) +#define kwsysProcess_Disown kwsys_ns(Process_Disown) #define kwsysProcess_WaitForData kwsys_ns(Process_WaitForData) #define kwsysProcess_Pipes_e kwsys_ns(Process_Pipes_e) #define kwsysProcess_Pipe_None kwsys_ns(Process_Pipe_None) @@ -140,7 +143,11 @@ kwsysEXPORT void kwsysProcess_SetPipeShared(kwsysProcess* cp, int pipe, int shared); /** - * Get/Set a platform-specific option. Possible options are: + * Get/Set a possibly platform-specific option. Possible options are: + * + * kwsysProcess_Option_Detach = Whether to detach the process. + * 0 = No (default) + * 1 = Yes * * kwsysProcess_Option_HideWindow = Whether to hide window on Windows. * 0 = No (default) @@ -151,7 +158,8 @@ kwsysEXPORT void kwsysProcess_SetOption(kwsysProcess* cp, int optionId, int value); enum kwsysProcess_Option_e { - kwsysProcess_Option_HideWindow + kwsysProcess_Option_HideWindow, + kwsysProcess_Option_Detach }; /** @@ -164,6 +172,7 @@ enum kwsysProcess_Option_e * kwsysProcess_State_Exited = Child process exited normally. * kwsysProcess_State_Expired = Child process's timeout expired. * kwsysProcess_State_Killed = Child process terminated by Kill method. + * kwsysProcess_State_Disowned = Child is no longer managed by this object. */ kwsysEXPORT int kwsysProcess_GetState(kwsysProcess* cp); enum kwsysProcess_State_e @@ -174,7 +183,8 @@ enum kwsysProcess_State_e kwsysProcess_State_Executing, kwsysProcess_State_Exited, kwsysProcess_State_Expired, - kwsysProcess_State_Killed + kwsysProcess_State_Killed, + kwsysProcess_State_Disowned }; /** @@ -237,6 +247,15 @@ kwsysEXPORT const char* kwsysProcess_GetExceptionString(kwsysProcess* cp); kwsysEXPORT void kwsysProcess_Execute(kwsysProcess* cp); /** + * Stop management of a detached child process. This closes any pipes + * being read. If the child was not created with the + * kwsysProcess_Option_Detach option, this method does nothing. This + * is because disowning a non-detached process will cause the child + * exit signal to be left unhandled until this process exits. + */ +kwsysEXPORT void kwsysProcess_Disown(kwsysProcess* cp); + +/** * Block until data are available on a pipe, a timeout expires, or the * child process terminates. Arguments are as follows: * @@ -318,6 +337,7 @@ kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp); # undef kwsysProcess_SetWorkingDirectory # undef kwsysProcess_SetPipeFile # undef kwsysProcess_SetPipeShared +# undef kwsysProcess_Option_Detach # undef kwsysProcess_Option_HideWindow # undef kwsysProcess_GetOption # undef kwsysProcess_SetOption @@ -329,6 +349,7 @@ kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp); # undef kwsysProcess_State_Exited # undef kwsysProcess_State_Expired # undef kwsysProcess_State_Killed +# undef kwsysProcess_State_Disowned # undef kwsysProcess_GetState # undef kwsysProcess_State_e # undef kwsysProcess_Exception_None @@ -344,6 +365,7 @@ kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp); # undef kwsysProcess_GetErrorString # undef kwsysProcess_GetExceptionString # undef kwsysProcess_Execute +# undef kwsysProcess_Disown # undef kwsysProcess_WaitForData # undef kwsysProcess_Pipes_e # undef kwsysProcess_Pipe_None |