ENH: Cleaned up pipe numbering.
This commit is contained in:
parent
21c5c6c81d
commit
b777b8656e
|
@ -60,6 +60,7 @@
|
||||||
#define kwsysProcess_Execute kwsys(Process_Execute)
|
#define kwsysProcess_Execute kwsys(Process_Execute)
|
||||||
#define kwsysProcess_WaitForData kwsys(Process_WaitForData)
|
#define kwsysProcess_WaitForData kwsys(Process_WaitForData)
|
||||||
#define kwsysProcess_Pipes_e kwsys(Process_Pipes_e)
|
#define kwsysProcess_Pipes_e kwsys(Process_Pipes_e)
|
||||||
|
#define kwsysProcess_Pipe_None kwsys(Process_Pipe_None)
|
||||||
#define kwsysProcess_Pipe_STDOUT kwsys(Process_Pipe_STDOUT)
|
#define kwsysProcess_Pipe_STDOUT kwsys(Process_Pipe_STDOUT)
|
||||||
#define kwsysProcess_Pipe_STDERR kwsys(Process_Pipe_STDERR)
|
#define kwsysProcess_Pipe_STDERR kwsys(Process_Pipe_STDERR)
|
||||||
#define kwsysProcess_Pipe_Timeout kwsys(Process_Pipe_Timeout)
|
#define kwsysProcess_Pipe_Timeout kwsys(Process_Pipe_Timeout)
|
||||||
|
@ -228,8 +229,8 @@ kwsysEXPORT void kwsysProcess_Execute(kwsysProcess* cp);
|
||||||
*
|
*
|
||||||
* Return value will be one of:
|
* Return value will be one of:
|
||||||
*
|
*
|
||||||
* 0 = No more data will be available from the child process,
|
* Pipe_None = No more data will be available from the child process,
|
||||||
* or no process has been executed. WaitForExit should
|
* ( == 0) or no process has been executed. WaitForExit should
|
||||||
* be called to wait for the process to terminate.
|
* be called to wait for the process to terminate.
|
||||||
* Pipe_STDOUT = Data have been read from the child's stdout pipe.
|
* Pipe_STDOUT = Data have been read from the child's stdout pipe.
|
||||||
* Pipe_STDERR = Data have been read from the child's stderr pipe.
|
* Pipe_STDERR = Data have been read from the child's stderr pipe.
|
||||||
|
@ -241,8 +242,9 @@ kwsysEXPORT int kwsysProcess_WaitForData(kwsysProcess* cp, char** data,
|
||||||
int* length, double* timeout);
|
int* length, double* timeout);
|
||||||
enum kwsysProcess_Pipes_e
|
enum kwsysProcess_Pipes_e
|
||||||
{
|
{
|
||||||
kwsysProcess_Pipe_STDOUT=1,
|
kwsysProcess_Pipe_None,
|
||||||
kwsysProcess_Pipe_STDERR=2,
|
kwsysProcess_Pipe_STDOUT,
|
||||||
|
kwsysProcess_Pipe_STDERR,
|
||||||
kwsysProcess_Pipe_Timeout=255
|
kwsysProcess_Pipe_Timeout=255
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -317,6 +319,7 @@ kwsysEXPORT void kwsysProcess_Kill(kwsysProcess* cp);
|
||||||
# undef kwsysProcess_Execute
|
# undef kwsysProcess_Execute
|
||||||
# undef kwsysProcess_WaitForData
|
# undef kwsysProcess_WaitForData
|
||||||
# undef kwsysProcess_Pipes_e
|
# undef kwsysProcess_Pipes_e
|
||||||
|
# undef kwsysProcess_Pipe_None
|
||||||
# undef kwsysProcess_Pipe_STDOUT
|
# undef kwsysProcess_Pipe_STDOUT
|
||||||
# undef kwsysProcess_Pipe_STDERR
|
# undef kwsysProcess_Pipe_STDERR
|
||||||
# undef kwsysProcess_Pipe_Timeout
|
# undef kwsysProcess_Pipe_Timeout
|
||||||
|
|
|
@ -497,7 +497,7 @@ int kwsysProcess_WaitForData(kwsysProcess* cp, char** data, int* length,
|
||||||
kwsysProcessTime userStartTime;
|
kwsysProcessTime userStartTime;
|
||||||
int user = 0;
|
int user = 0;
|
||||||
int expired = 0;
|
int expired = 0;
|
||||||
int pipeId = 0;
|
int pipeId = kwsysProcess_Pipe_None;
|
||||||
int numReady = 0;
|
int numReady = 0;
|
||||||
|
|
||||||
/* Record the time at which user timeout period starts. */
|
/* Record the time at which user timeout period starts. */
|
||||||
|
@ -542,7 +542,13 @@ int kwsysProcess_WaitForData(kwsysProcess* cp, char** data, int* length,
|
||||||
/* Report this data. */
|
/* Report this data. */
|
||||||
*data = cp->PipeBuffer;
|
*data = cp->PipeBuffer;
|
||||||
*length = n;
|
*length = n;
|
||||||
pipeId = (1 << i);
|
switch(i)
|
||||||
|
{
|
||||||
|
case KWSYSPE_PIPE_STDOUT:
|
||||||
|
pipeId = kwsysProcess_Pipe_STDOUT; break;
|
||||||
|
case KWSYSPE_PIPE_STDERR:
|
||||||
|
pipeId = kwsysProcess_Pipe_STDERR; break;
|
||||||
|
};
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -663,13 +669,13 @@ int kwsysProcess_WaitForData(kwsysProcess* cp, char** data, int* length,
|
||||||
cp->Killed = 0;
|
cp->Killed = 0;
|
||||||
cp->TimeoutExpired = 1;
|
cp->TimeoutExpired = 1;
|
||||||
cp->PipesLeft = 0;
|
cp->PipesLeft = 0;
|
||||||
return 0;
|
return kwsysProcess_Pipe_None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* No pipes are left open. */
|
/* No pipes are left open. */
|
||||||
return 0;
|
return kwsysProcess_Pipe_None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -931,14 +931,14 @@ int kwsysProcess_WaitForData(kwsysProcess* cp, char** data, int* length,
|
||||||
int user;
|
int user;
|
||||||
int done = 0;
|
int done = 0;
|
||||||
int expired = 0;
|
int expired = 0;
|
||||||
int pipeId = 0;
|
int pipeId = kwsysProcess_Pipe_None;
|
||||||
DWORD w;
|
DWORD w;
|
||||||
|
|
||||||
/* Make sure we are executing a process. */
|
/* Make sure we are executing a process. */
|
||||||
if(cp->State != kwsysProcess_State_Executing || cp->Killed ||
|
if(cp->State != kwsysProcess_State_Executing || cp->Killed ||
|
||||||
cp->TimeoutExpired)
|
cp->TimeoutExpired)
|
||||||
{
|
{
|
||||||
return 0;
|
return kwsysProcess_Pipe_None;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Record the time at which user timeout period starts. */
|
/* Record the time at which user timeout period starts. */
|
||||||
|
@ -1002,7 +1002,13 @@ int kwsysProcess_WaitForData(kwsysProcess* cp, char** data, int* length,
|
||||||
/* Report this data. */
|
/* Report this data. */
|
||||||
*data = cp->Pipe[cp->CurrentIndex].DataBuffer;
|
*data = cp->Pipe[cp->CurrentIndex].DataBuffer;
|
||||||
*length = cp->Pipe[cp->CurrentIndex].DataLength;
|
*length = cp->Pipe[cp->CurrentIndex].DataLength;
|
||||||
pipeId = (1 << cp->CurrentIndex);
|
switch(cp->CurrentIndex)
|
||||||
|
{
|
||||||
|
case KWSYSPE_PIPE_STDOUT:
|
||||||
|
pipeId = kwsysProcess_Pipe_STDOUT; break;
|
||||||
|
case KWSYSPE_PIPE_STDERR:
|
||||||
|
pipeId = kwsysProcess_Pipe_STDERR; break;
|
||||||
|
}
|
||||||
done = 1;
|
done = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1047,13 +1053,13 @@ int kwsysProcess_WaitForData(kwsysProcess* cp, char** data, int* length,
|
||||||
kwsysProcess_Kill(cp);
|
kwsysProcess_Kill(cp);
|
||||||
cp->TimeoutExpired = 1;
|
cp->TimeoutExpired = 1;
|
||||||
cp->Killed = 0;
|
cp->Killed = 0;
|
||||||
return 0;
|
return kwsysProcess_Pipe_None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
/* The children have terminated and no more data are available. */
|
/* The children have terminated and no more data are available. */
|
||||||
return 0;
|
return kwsysProcess_Pipe_None;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue