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.3 by schorsch, Mon Jul 14 20:02:29 2003 UTC vs.
Revision 3.13 by greg, Tue Feb 2 18:02:32 2016 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  <errno.h>
12 + #include <stdio.h>
13   #ifdef _WIN32
14    #include <windows.h> /* DWORD etc. */
15 <  typedef DWORD pid_t;
15 >  typedef DWORD RT_PID;
16    #include <process.h> /* getpid() and others */
17   #else
18    #include <sys/param.h>
19 +  #include <sys/types.h>
20 +  typedef pid_t RT_PID;
21   #endif
22  
23   #include "paths.h"
24  
25 + #ifdef __cplusplus
26 + extern "C" {
27 + #endif
28  
29   /* On Windows, a process ID is a DWORD. That might actually be the
30     same thing as an int, but it's better not to assume anything.
31  
32     This means that we shouldn't rely on PIDs and file descriptors
33     being the same type, so we have to describe processes with a struct,
34 <   instead of the original int[3]. To keep things simple, we typedef
35 <   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.
34 >   instead of the original int[3]. For that purpose, we typedef a
35 >   platform independent RT_PID.
36   */
37  
38  
# Line 53 | Line 52 | typedef struct {
52          int r; /* read handle */
53          int w; /* write handle */
54          int running; /* doing something */
55 <        pid_t pid; /* process ID */
55 >        RT_PID pid; /* process ID */
56   } SUBPROC;
57  
58   #define SP_INACTIVE {-1,-1,0,0} /* for static initializations */
# Line 63 | Line 62 | extern int close_process(SUBPROC *pd);
62   extern int process(SUBPROC *pd, char *recvbuf, char *sendbuf, int nbr, int nbs);
63   extern int readbuf(int fd, char *bpos, int siz);
64   extern int writebuf(int fd, char *bpos, int siz);
65 +
66 + #ifdef _WIN32
67 + /* any non-negative increment will send the process to IDLE_PRIORITY_CLASS. */
68 + extern int win_nice(int inc);
69 + #endif
70  
71  
72   #ifdef __cplusplus

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines