--- ray/src/common/rtprocess.h 2003/07/14 22:23:59 3.4 +++ ray/src/common/rtprocess.h 2003/11/14 17:22:06 3.9 @@ -1,4 +1,4 @@ -/* RCSid $Id: rtprocess.h,v 3.4 2003/07/14 22:23:59 schorsch Exp $ */ +/* RCSid $Id: rtprocess.h,v 3.9 2003/11/14 17:22:06 schorsch Exp $ */ /* * rtprocess.h * Routines to communicate with separate process via dual pipes @@ -11,9 +11,24 @@ #include #ifdef _WIN32 #include /* DWORD etc. */ + #include typedef DWORD pid_t; #include /* getpid() and others */ + #define nice(inc) win_nice(inc) + + #ifdef __cplusplus + extern "C" { + #endif + extern FILE *win_popen(char *command, char *type); + extern int win_pclose(FILE *p); + #ifdef __cplusplus + } + #endif + + #define popen(cmd,mode) win_popen(cmd,mode) + #define pclose(p) win_pclose(p) #else + #include #include #endif @@ -30,10 +45,6 @@ extern "C" { being the same type, so we have to describe processes with a struct, instead of the original int[3]. To keep things simple, we typedef the posix pid_t on those systems that don't have it already. - - Some older Windows systems use negative PIDs. Open_process() and - close_process() will convert those to positive values during - runtime, so that client modules can still use -1 as invalid PID. */ @@ -63,6 +74,11 @@ extern int close_process(SUBPROC *pd); extern int process(SUBPROC *pd, char *recvbuf, char *sendbuf, int nbr, int nbs); extern int readbuf(int fd, char *bpos, int siz); extern int writebuf(int fd, char *bpos, int siz); + +#ifdef _WIN32 +/* any non-negative increment will send the process to IDLE_PRIORITY_CLASS. */ +extern int win_nice(int inc); +#endif #ifdef __cplusplus