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.7 by greg, Mon Nov 10 16:41:52 2003 UTC vs.
Revision 3.16 by schorsch, Sun Mar 6 01:13:17 2016 UTC

# Line 9 | Line 9
9   #define _RAD_PROCESS_H_
10  
11   #include  <errno.h>
12 < #ifdef _WIN32
12 > #include <stdio.h>
13 > #if defined(_WIN32) || defined(_WIN64)
14    #include <windows.h> /* DWORD etc. */
15 <  #include <stdio.h>
15 <  typedef DWORD pid_t;
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)
17 >  #define getpid _getpid
18 >  #define execv _execv
19   #else
20    #include <sys/param.h>
21 +  #include <sys/types.h>
22 +  typedef pid_t RT_PID;
23   #endif
24  
25   #include "paths.h"
26  
36 #if !defined(BSD) || defined(sparc)
37 #define vfork   fork
38 #endif
39
27   #ifdef __cplusplus
28   extern "C" {
29   #endif
# Line 46 | Line 33 | extern "C" {
33  
34     This means that we shouldn't rely on PIDs and file descriptors
35     being the same type, so we have to describe processes with a struct,
36 <   instead of the original int[3]. To keep things simple, we typedef
37 <   the posix pid_t on those systems that don't have it already.
36 >   instead of the original int[3]. For that purpose, we typedef a
37 >   platform independent RT_PID.
38   */
39  
40  
# Line 67 | Line 54 | typedef struct {
54          int r; /* read handle */
55          int w; /* write handle */
56          int running; /* doing something */
57 <        pid_t pid; /* process ID */
57 >        RT_PID pid; /* process ID */
58   } SUBPROC;
59  
60   #define SP_INACTIVE {-1,-1,0,0} /* for static initializations */
61  
62 + #define close_process(pd)       close_processes(pd,1)
63 +
64   extern int open_process(SUBPROC *pd, char *av[]);
65 < extern int close_process(SUBPROC *pd);
65 > extern int close_processes(SUBPROC pd[], int nproc);
66   extern int process(SUBPROC *pd, char *recvbuf, char *sendbuf, int nbr, int nbs);
67   extern int readbuf(int fd, char *bpos, int siz);
68   extern int writebuf(int fd, char *bpos, int siz);
69  
70 < #ifdef _WIN32
70 > #if defined(_WIN32) || defined(_WIN64)
71   /* any non-negative increment will send the process to IDLE_PRIORITY_CLASS. */
72 + extern int win_kill(RT_PID pid, int sig /* ignored */);
73   extern int win_nice(int inc);
74   #endif
75  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines