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.2 by greg, Fri Jun 27 06:53:21 2003 UTC vs.
Revision 3.11 by schorsch, Sat Oct 23 18:55:52 2004 UTC

# Line 7 | Line 7
7   */
8   #ifndef _RAD_PROCESS_H_
9   #define _RAD_PROCESS_H_
10 #ifdef __cplusplus
11 extern "C" {
12 #endif
10  
11 < #include  <sys/types.h>
11 > #include  <errno.h>
12   #ifdef _WIN32
13 <  #include <windows.h>
13 >  #include <windows.h> /* DWORD etc. */
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 >  int win_kill(RT_PID pid, int sig /* ignored */);
25 >  #define kill(pid,sig) win_kill(pid,sig)
26 >  #ifdef __cplusplus
27 >  }
28 >  #endif
29 >
30 >  #define popen(cmd,mode) win_popen(cmd,mode)
31 >  #define pclose(p) win_pclose(p)
32   #else
33 +  #include <stdio.h>
34    #include <sys/param.h>
35 <  #include <unistd.h>
35 >  #include <sys/types.h>
36 >  typedef pid_t RT_PID;
37   #endif
21 #ifndef BSD
22 #include  <errno.h>
23 #endif
38  
39   #include "paths.h"
40  
41 + #ifdef __cplusplus
42 + extern "C" {
43 + #endif
44  
45   /* On Windows, a process ID is a DWORD. That might actually be the
46     same thing as an int, but it's better not to assume anything.
47  
48     This means that we shouldn't rely on PIDs and file descriptors
49     being the same type, so we have to describe processes with a struct,
50 <   instead of the original int[3]. To keep things simple, we typedef
51 <   the posix pid_t on those systems that don't have it already.
35 <
36 <   Some older Windows systems use negative PIDs. Open_process() and
37 <   close_process() will convert those to positive values during
38 <   runtime, so that client modules can still use -1 as invalid PID.
50 >   instead of the original int[3]. For that purpose, we typedef a
51 >   platform independent RT_PID.
52   */
53  
41 #ifdef _WIN32
42  typedef DWORD pid_t;
43 #endif
54  
55   #ifndef PIPE_BUF
56    #ifdef PIPSIZ
# Line 58 | Line 68 | typedef struct {
68          int r; /* read handle */
69          int w; /* write handle */
70          int running; /* doing something */
71 <        pid_t pid; /* process ID */
71 >        RT_PID pid; /* process ID */
72   } SUBPROC;
73  
74   #define SP_INACTIVE {-1,-1,0,0} /* for static initializations */
# Line 68 | Line 78 | extern int close_process(SUBPROC *pd);
78   extern int process(SUBPROC *pd, char *recvbuf, char *sendbuf, int nbr, int nbs);
79   extern int readbuf(int fd, char *bpos, int siz);
80   extern int writebuf(int fd, char *bpos, int siz);
81 +
82 + #ifdef _WIN32
83 + /* any non-negative increment will send the process to IDLE_PRIORITY_CLASS. */
84 + extern int win_nice(int inc);
85 + #endif
86  
87  
88   #ifdef __cplusplus

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines