--- ray/src/hd/rholo2l.c 1997/10/31 11:44:09 3.2 +++ ray/src/hd/rholo2l.c 1997/12/02 16:35:45 3.7 @@ -10,6 +10,8 @@ static char SCCSid[] = "$SunId$ SGI"; #include "rholo.h" #include "random.h" +#include "paths.h" +#include "selcall.h" #include #include @@ -17,7 +19,7 @@ static char SCCSid[] = "$SunId$ SGI"; #define MAXPROC 16 #endif -static char PFILE[] = "/usr/tmp/RHpersist"; /* persist file name */ +static char pfile[] = TEMPLATE; /* persist file name */ static int rtpd[MAXPROC][3]; /* process descriptors */ static float *rtbuf = NULL; /* allocated i/o buffer */ @@ -53,10 +55,12 @@ start_rtrace() /* start rtrace process */ rtargv[rtargc++] = "-x"; rtargv[rtargc++] = buf1; rtargv[rtargc++] = "-y"; rtargv[rtargc++] = "0"; rtargv[rtargc++] = "-fff"; - rtargv[rtargc++] = "-ovl"; - rtargv[rtargc++] = nowarn ? "-w-" : "-w+"; + rtargv[rtargc++] = vbool(VDIST) ? "-ovl" : "-ovL"; + if (nowarn) + rtargv[rtargc++] = "-w-"; if (npt > 1) { - rtargv[rtargc++] = "-PP"; rtargv[rtargc++] = PFILE; + mktemp(pfile); + rtargv[rtargc++] = "-PP"; rtargv[rtargc++] = pfile; } rtargv[rtargc++] = vval(OCTREE); rtargv[rtargc] = NULL; @@ -218,7 +222,7 @@ int poll; } return(pldone); /* return finished packets */ eoferr: - error(USER, "unexpected EOF from rtrace process"); + error(USER, "rtrace process died"); } @@ -252,7 +256,7 @@ flush_queue() /* empty all rtrace queues */ if (pqlen[i]) { if (rpdone == NULL) { /* tack on queue */ rpdone = rpl = pqueue[i]; - nr = rpl->nr; + if ((nr = rpl->nr) < RPACKSIZ) nr++; } else { rpl->next = pqueue[i]; nr = 0; @@ -290,10 +294,10 @@ killpersist() /* kill persistent process */ FILE *fp; int pid; - if ((fp = fopen(PFILE, "r")) == NULL) + if ((fp = fopen(pfile, "r")) == NULL) return; if (fscanf(fp, "%*s %d", &pid) != 1 || kill(pid, SIGALRM) < 0) - unlink(PFILE); + unlink(pfile); fclose(fp); }