ad_run_scheduled_proc proc_infoWhat it does:
Runs a scheduled procedure and updates monitoring information in the shared variables.Defined in: /web/philip/packages/acs-core/utilities-procs.tcl
Source code:
# Grab information about the scheduled procedure. set thread [lindex $proc_info 0] set once [lindex $proc_info 1] set interval [lindex $proc_info 2] set proc [lindex $proc_info 3] set args [lindex $proc_info 4] set time [lindex $proc_info 5] set count 0 set debug [lindex $proc_info 7] ns_mutex lock [nsv_get ad_procs mutex] set procs [nsv_get ad_procs .] # Find the entry in the shared variable. Splice it out. for { set i 0 } { $i < [llength $procs] } { incr i } { set other_proc_info [lindex $procs $i] for { set j 0 } { $j < 5 } { incr j } { if { [lindex $proc_info $j] != [lindex $other_proc_info $j] } { break } } if { $j == 5 } { set count [lindex $other_proc_info 6] set procs [lreplace $procs $i $i] break } } if { $once == "f" } { # The proc will run again - readd it to the shared variable (updating ns_time and # incrementing the count). lappend procs [list $thread $once $interval $proc $args [ns_time] [expr { $count + 1 }] $debug] } nsv_set ad_procs . $procs ns_mutex unlock [nsv_get ad_procs mutex] if { $debug == "t" } { ns_log "Notice" "Running scheduled proc $proc..." } # Actually run the procedure. eval [concat [list $proc] $args] if { $debug == "t" } { ns_log "Notice" "Done running scheduled proc $proc." }