ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/util/rpiece.c
(Generate patch)

Comparing ray/src/util/rpiece.c (file contents):
Revision 2.17 by greg, Sat Feb 20 17:07:35 1993 UTC vs.
Revision 2.18 by greg, Fri Apr 16 12:03:59 1993 UTC

# Line 39 | Line 39 | char *argv[];
39   #define  MAXFORK                0
40   #endif
41   #endif
42 <
42 >                                        /* protection from SYSV signals(!) */
43 > #if defined(sgi) || defined(hpux)
44 > #define guard_io()      sighold(SIGALRM)
45 > #define unguard()       sigrelse(SIGALRM)
46 > #endif
47 > #ifndef guard_io
48 > #define guard_io()      0
49 > #define unguard()       0
50 > #endif
51                                  /* rpict command */
52   char  *rpargv[128] = {"rpict", "-S", "1", "-x", "512", "-y", "512", "-pa", "1"};
53   int  rpargc = 9;
# Line 351 | Line 359 | int  xpos, ypos;
359                  exit(cleanup(1));
360          }
361                                  /* check header from rpict */
362 +        guard_io();
363          getheader(fromrp, NULL, NULL);
364          if (!fscnresolu(&hr, &vr, fromrp) || hr != hres | vr != vres) {
365                  fprintf(stderr, "%s: resolution mismatch from %s\n",
366                                  progname, rpargv[0]);
367                  exit(cleanup(1));
368          }
369 +        unguard();
370                                  /* load new piece into buffer */
371 <        for (y = 0; y < vr; y++)
371 >        for (y = 0; y < vr; y++) {
372 >                guard_io();
373                  if (freadcolrs(pbuf+y*hr, hr, fromrp) < 0) {
374                          fprintf(stderr, "%s: read error from %s\n",
375                                          progname, rpargv[0]);
376                          exit(cleanup(1));
377                  }
378 +                unguard();
379 +        }
380   #if MAXFORK
381                                  /* fork so we don't slow rpict down */
382          if ((pid = fork()) > 0) {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines