[Cmake-commits] [cmake-commits] king committed ProcessUNIX.c 1.82 1.83
cmake-commits at cmake.org
cmake-commits at cmake.org
Wed Jun 10 11:46:23 EDT 2009
Update of /cvsroot/CMake/CMake/Source/kwsys
In directory public:/mounts/ram/cvs-serv31465/Source/kwsys
Modified Files:
ProcessUNIX.c
Log Message:
BUG: Fix non-select process impl without timeout
This avoids use of an uninitialized value in the KWSys ProcessUNIX
polling implementation when no timeout is given.
Index: ProcessUNIX.c
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/kwsys/ProcessUNIX.c,v
retrieving revision 1.82
retrieving revision 1.83
diff -C 2 -d -r1.82 -r1.83
*** ProcessUNIX.c 23 Apr 2009 15:09:32 -0000 1.82
--- ProcessUNIX.c 10 Jun 2009 15:46:21 -0000 1.83
***************
*** 157,161 ****
static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
double* userTimeout,
! kwsysProcessTimeNative* timeoutLength);
static kwsysProcessTime kwsysProcessTimeGetCurrent(void);
static double kwsysProcessTimeToDouble(kwsysProcessTime t);
--- 157,162 ----
static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
double* userTimeout,
! kwsysProcessTimeNative* timeoutLength,
! int zeroIsExpired);
static kwsysProcessTime kwsysProcessTimeGetCurrent(void);
static double kwsysProcessTimeToDouble(kwsysProcessTime t);
***************
*** 1098,1102 ****
if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime,
wd->User?wd->UserTimeout:0,
! &timeoutLength))
{
/* Timeout has already expired. */
--- 1099,1103 ----
if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime,
wd->User?wd->UserTimeout:0,
! &timeoutLength, 0))
{
/* Timeout has already expired. */
***************
*** 1211,1222 ****
if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime, wd->User?wd->UserTimeout:0,
! &timeoutLength))
! {
! /* Timeout has already expired. */
! wd->Expired = 1;
! return 1;
! }
!
! if((timeoutLength.tv_sec == 0) && (timeoutLength.tv_usec == 0))
{
/* Timeout has already expired. */
--- 1212,1216 ----
if(kwsysProcessGetTimeoutLeft(&wd->TimeoutTime, wd->User?wd->UserTimeout:0,
! &timeoutLength, 1))
{
/* Timeout has already expired. */
***************
*** 1906,1910 ****
static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
double* userTimeout,
! kwsysProcessTimeNative* timeoutLength)
{
if(timeoutTime->tv_sec < 0)
--- 1900,1905 ----
static int kwsysProcessGetTimeoutLeft(kwsysProcessTime* timeoutTime,
double* userTimeout,
! kwsysProcessTimeNative* timeoutLength,
! int zeroIsExpired)
{
if(timeoutTime->tv_sec < 0)
***************
*** 1926,1930 ****
}
! if(timeLeft.tv_sec < 0)
{
/* Timeout has already expired. */
--- 1921,1926 ----
}
! if(timeLeft.tv_sec < 0 ||
! (timeLeft.tv_sec == 0 && timeLeft.tv_usec == 0 && zeroIsExpired))
{
/* Timeout has already expired. */
More information about the Cmake-commits
mailing list