MESSAGE(STATUS "Looking for PThread...")
ENDIF (NOT PThread_FIND_QUIETLY)
-FIND_PATH(PTHREAD_INCLUDE_DIR pthread.h)
-FIND_LIBRARY(PTHREAD_LIBRARY NAMES pthread pthreadVC2)
+IF(WIN32)
+ SET(PTHREADS_ROOT_USER $ENV{PTHREADS_ROOT})
+ SET(PTHREADS_FIND_PATHS_OPTION NO_DEFAULT_PATH)
+ SET(PTHREADS_INCLUDE_TO_FIND pthread.h)
+ SET(PTHREADS_INCLUDE_PATHS ${PTHREADS_ROOT_USER}/include)
+ FIND_PATH(PTHREAD_INCLUDE_DIR ${PTHREADS_INCLUDE_TO_FIND}
+ PATHS ${PTHREADS_INCLUDE_PATHS} ${PTHREADS_FIND_PATHS_OPTION})
+ SET(PTHREADS_LIB_PATHS ${PTHREADS_ROOT_USER}/lib)
+ IF(CMAKE_BUILD_TYPE STREQUAL Release)
+ FIND_LIBRARY(PTHREAD_LIBRARY pthreadVSE2 pthreadVC2
+ PATHS ${PTHREADS_LIB_PATHS} ${PTHREADS_FIND_PATHS_OPTION})
+ ELSE(CMAKE_BUILD_TYPE STREQUAL Release)
+ FIND_LIBRARY(PTHREAD_LIBRARY pthreadVSE2d pthreadVC2d
+ PATHS ${PTHREADS_LIB_PATHS} ${PTHREADS_FIND_PATHS_OPTION})
+ ENDIF(CMAKE_BUILD_TYPE STREQUAL Release)
+ELSE(WIN32)
+ FIND_PATH(PTHREAD_INCLUDE_DIR pthread.h)
+ FIND_LIBRARY(PTHREAD_LIBRARY NAMES pthread)
+ENDIF(WIN32)
IF (PTHREAD_INCLUDE_DIR AND PTHREAD_LIBRARY)
SET(PThread_FOUND True)
_param[ID] = oss.str();
// read status of job in log file
- char line[128];
- ifstream fp(logFile.c_str(),ios::in);
- fp.getline(line,80,'\n');
-
- string sjobid, username, status;
- fp >> sjobid;
- fp >> username;
- fp >> status;
-
- if (status == "PEND") { // Pending
- _param[STATE] = QUEUED;
- } else if (status == "PSUSP") { // Suspended while pending
- _param[STATE] = PAUSED;
- } else if (status == "RUN") { // Running
- _param[STATE] = RUNNING;
- } else if (status == "USUSP") { // Suspended while running
- _param[STATE] = PAUSED;
- } else if (status == "SSUSP") { // Suspended by LSF
- _param[STATE] = PAUSED;
- } else if (status == "DONE") { // Finished successfully
+ string line;
+ ifstream fp(logFile.c_str());
+ getline(fp, line);
+
+ // On some batch managers, the job is deleted soon after it is finished,
+ // so we have to consider that an unknown job (empty file) is a finished
+ // one, even if it is not always true.
+ if (fp.eof()) {
_param[STATE] = FINISHED;
- } else if (status == "EXIT") { // Finished in error
- _param[STATE] = FAILED;
- } else if (status == "UNKWN") { // Lost contact
- _param[STATE] = FAILED;
- } else if (status == "ZOMBI") { // Zombie
- _param[STATE] = FAILED;
} else {
- cerr << "Unknown job state code: " << status << endl;
+ string sjobid, username, status;
+ fp >> sjobid;
+ fp >> username;
+ fp >> status;
+
+ if (status == "PEND") { // Pending
+ _param[STATE] = QUEUED;
+ } else if (status == "PSUSP") { // Suspended while pending
+ _param[STATE] = PAUSED;
+ } else if (status == "RUN") { // Running
+ _param[STATE] = RUNNING;
+ } else if (status == "USUSP") { // Suspended while running
+ _param[STATE] = PAUSED;
+ } else if (status == "SSUSP") { // Suspended by LSF
+ _param[STATE] = PAUSED;
+ } else if (status == "DONE") { // Finished successfully
+ _param[STATE] = FINISHED;
+ } else if (status == "EXIT") { // Finished in error
+ _param[STATE] = FAILED;
+ } else if (status == "UNKWN") { // Lost contact
+ _param[STATE] = FAILED;
+ } else if (status == "ZOMBI") { // Zombie
+ _param[STATE] = FAILED;
+ } else {
+ cerr << "Unknown job state code: " << status << endl;
+ }
+
+ if( status.find("RUN") != string::npos)
+ _running = true;
}
-
- if( status.find("RUN") != string::npos)
- _running = true;
-
}
// Teste si un job est present en machine