ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/rtprocess.h
(Generate patch)

Comparing ray/src/common/rtprocess.h (file contents):
Revision 3.4 by schorsch, Mon Jul 14 22:23:59 2003 UTC vs.
Revision 3.10 by schorsch, Wed Jan 28 12:42:22 2004 UTC

# Line 11 | Line 11
11   #include  <errno.h>
12   #ifdef _WIN32
13    #include <windows.h> /* DWORD etc. */
14 <  typedef DWORD pid_t;
14 >  #include <stdio.h>
15 >  typedef DWORD RT_PID;
16    #include <process.h> /* getpid() and others */
17 +  #define nice(inc) win_nice(inc)
18 +
19 +  #ifdef __cplusplus
20 +  extern "C" {
21 +  #endif
22 +  extern FILE *win_popen(char *command, char *type);
23 +  extern int win_pclose(FILE *p);
24 +  #ifdef __cplusplus
25 +  }
26 +  #endif
27 +
28 +  #define popen(cmd,mode) win_popen(cmd,mode)
29 +  #define pclose(p) win_pclose(p)
30   #else
31 +  #include <stdio.h>
32    #include <sys/param.h>
33 +  #include <sys/types.h>
34 +  typedef pid_t RT_PID;
35   #endif
36  
37   #include "paths.h"
# Line 28 | Line 45 | extern "C" {
45  
46     This means that we shouldn't rely on PIDs and file descriptors
47     being the same type, so we have to describe processes with a struct,
48 <   instead of the original int[3]. To keep things simple, we typedef
49 <   the posix pid_t on those systems that don't have it already.
33 <
34 <   Some older Windows systems use negative PIDs. Open_process() and
35 <   close_process() will convert those to positive values during
36 <   runtime, so that client modules can still use -1 as invalid PID.
48 >   instead of the original int[3]. For that purpose, we typedef a
49 >   platform independent RT_PID.
50   */
51  
52  
# Line 53 | Line 66 | typedef struct {
66          int r; /* read handle */
67          int w; /* write handle */
68          int running; /* doing something */
69 <        pid_t pid; /* process ID */
69 >        RT_PID pid; /* process ID */
70   } SUBPROC;
71  
72   #define SP_INACTIVE {-1,-1,0,0} /* for static initializations */
# Line 63 | Line 76 | extern int close_process(SUBPROC *pd);
76   extern int process(SUBPROC *pd, char *recvbuf, char *sendbuf, int nbr, int nbs);
77   extern int readbuf(int fd, char *bpos, int siz);
78   extern int writebuf(int fd, char *bpos, int siz);
79 +
80 + #ifdef _WIN32
81 + /* any non-negative increment will send the process to IDLE_PRIORITY_CLASS. */
82 + extern int win_nice(int inc);
83 + #endif
84  
85  
86   #ifdef __cplusplus

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines