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

Comparing ray/src/util/do_action.tcl (file contents):
Revision 2.3 by greg, Thu Oct 27 18:08:09 1994 UTC vs.
Revision 2.11 by greg, Thu Jan 1 19:31:46 2004 UTC

# Line 1 | Line 1
1 < # SCCSid "$SunId$ LBL"
1 > # RCSid: $Id$
2   #
3   # Action screen for trad
4   #
5  
6 + set batch_fmt "Process %d on %s started"
7 + set hostname [exec hostname]
8 +
9   proc make_script {} {           # make run script
10          global scname rpview curmess
11          set rfn /usr/tmp/rf[pid]
# Line 64 | Line 67 | proc run_rad args {            # Run rad command with given argu
67   }
68  
69   proc run_batch {} {             # start rendering in background
70 <        global rpview bfname batch_pid curmess rifname mywin
70 >        global rpview bfname batch_pid curmess rifname mywin batch_fmt hostname
71          if {! [chksave]} {return}
72          if [catch {set fo [open $bfname w]} curmess] {
73                  return
74          }
75          # Make space for PID to be written later
76 <        puts $fo "        "
76 >        puts $fo \
77 > "                                                                             "
78          if {$rpview == " ALL"} {
79                  set radcom "rad"
80          } else {
# Line 84 | Line 88 | proc run_batch {} {            # start rendering in background
88          set batch_pid [eval exec $radcom >>& $bfname &]
89          # Now, write PID and close file
90          seek $fo 0
91 <        puts -nonewline $fo $batch_pid
91 >        puts -nonewline $fo "[format $batch_fmt $batch_pid $hostname]\
92 >                                [exec date]"
93          close $fo
94          set curmess "Batch rendering process $batch_pid started."
95          # Correct button stati
# Line 100 | Line 105 | proc kill_batch {} {           # kill batch rendering
105          switch -glob [exec uname] {
106                  SunOS -
107                  ULTRIX {set ps "ps -lg"}
108 <                default {set ps "ps -lu $env(USER)"}
108 >                default {set ps "ps -lu $env(LOGNAME)"}
109          }
110          set fi [open "|$ps" r]
111          gets $fi li
# Line 146 | Line 151 | proc make_vmenus {} {          # make/update view menus
151          catch {destroy $mywin.rbvmb.m}
152          if {[llength $radvar(view)] < 2} {
153                  $mywin.rivmb configure -state disabled
149                $mywin.rbvmb configure -state disabled
154                  return
155          }
156          menu $mywin.rivmb.m
# Line 156 | Line 160 | proc make_vmenus {} {          # make/update view menus
160                                  -variable rvview -value [lindex $v 0]
161          }
162          menu $mywin.rbvmb.m
163 <        $mywin.rbvmb configure -menu $mywin.rbvmb.m -state normal
163 >        $mywin.rbvmb configure -menu $mywin.rbvmb.m
164          $mywin.rbvmb.m add radiobutton -label ALL \
165                          -variable rpview -value " ALL"
166          $mywin.rbvmb.m add separator
# Line 168 | Line 172 | proc make_vmenus {} {          # make/update view menus
172  
173   proc do_action w {              # Action screen
174          global rifname rvview rpview radvar bfname batch_pid \
175 <                        curmess scname mywin alldone
175 >                        curmess scname mywin alldone batch_fmt hostname
176          if {"$w" == "done"} {
177 <                unset rpview bfname batch_pid mywin
177 >                unset rvview rpview bfname batch_pid mywin
178                  return
179          }
180          set bfname [file rootname [file tail $rifname]].err
# Line 192 | Line 196 | proc do_action w {             # Action screen
196          # Render interactively
197          label $w.ril -text {Render interactively}
198          place $w.ril -relx .1429 -rely .2439
199 <        button $w.rirv -text rview -relief raised \
199 >        button $w.rirv -text rvu -relief raised \
200                          -command {run_rad -v $rvview -o x11}
201          place $w.rirv -relwidth .1071 -relheight .0610 -relx .4643 -rely .2439
202 <        helplink $w.rirv trad action rview
202 >        helplink $w.rirv trad action rvu
203          label $w.rivl -text View:
204          place $w.rivl -relx .6072 -rely .2439
205          menubutton $w.rivmb -textvariable rvview -anchor w -relief raised
# Line 219 | Line 223 | proc do_action w {             # Action screen
223                          -command {view_txt $bfname}
224          place $w.rbce -relwidth .1786 -relheight .0610 -relx .6429 -rely .5488
225          helplink $w.rbce trad action checkerr
226 <        if [file exists $bfname] {
226 >        if [file isfile $bfname] {
227                  set fi [open $bfname r]
228 <                eval set batch_pid [gets $fi]
229 <                gets $fi radcom
228 >                if {[scan [gets $fi] $batch_fmt batch_pid batch_host] != 2} {
229 >                        set batch_host unknown
230 >                        set radcom {}
231 >                } else {
232 >                        gets $fi radcom
233 >                }
234                  close $fi
235 <                if [catch {exec /bin/kill -0 $batch_pid}] {
235 >                if [string match "rad -v *" $radcom] {
236 >                        set rpview [lindex $radcom 2]
237 >                } else {
238 >                        set rpview " ALL"
239 >                }
240 >                if {"$hostname" != "$batch_host"} {
241                          if $alldone {
242 +                                set curmess "Batch rendering finished\
243 +                                                on $batch_host."
244 +                        } else {
245 +                                set curmess "Batch rendering on\
246 +                                                $batch_host -- status UNKNOWN."
247 +                                $w.rbst configure -state disabled
248 +                                $w.rbvmb configure -state disabled
249 +                        }
250 +                        set batch_pid 0
251 +                        $w.rbki configure -state disabled
252 +                } elseif {[catch {exec /bin/kill -0 $batch_pid}]} {
253 +                        if $alldone {
254                                  set curmess "Batch rendering finished."
255                          } else {
256                                  set curmess "Batch rendering stopped."
# Line 235 | Line 260 | proc do_action w {             # Action screen
260                          $w.rbki configure -state disabled
261                  } else {
262                          set curmess "Batch rendering process $batch_pid running."
238                        if [string match "rad -v *" $radcom] {
239                                set rpview [lindex $radcom 2]
240                        } else {
241                                set rpview " ALL"
242                        }
263                          $w.rbst configure -state disabled
264                          $w.rbvmb configure -state disabled
265                  }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines