# SUCH DAMAGE.
#
-# $Id: eventsched.tcl,v 1.5 2008/06/24 05:03:38 marko Exp $
+# $Id: eventsched.tcl,v 1.6 2008/06/24 06:44:48 marko Exp $
proc evsched {} {
if { $oper_mode == "exec" } {
if { $sched_init_done == 0 } {
sched_init
+ after 1000 evsched
+ return
}
} else {
set sched_init_done 0
set need_sort 1
}
}
+ } elseif { [lindex $params 0] == "square" } {
+ set lo [lindex $params 1]
+ set hi [lindex $params 2]
+ set next [expr $deadline + [lindex $params 3]]
+ set value $hi
+ if { $next > $deadline } {
+ set nextev \
+ [lsearch $eventqueue "* $class $object $target *"]
+ if { $nextev == -1 || \
+ [lindex [lindex $eventqueue $nextev] 0] > $next } {
+ lappend eventqueue \
+ "$next [lrange $event 1 4] $hi $lo [lindex $params 3]"
+ set need_sort 1
+ }
+ }
} else {
set value [lindex $params 0]
}
switch -exact -- $target {
bandwidth {
setLinkBandwidth $object $value
+ execSetLinkParams $eid $object
}
delay {
setLinkDelay $object $value
+ execSetLinkParams $eid $object
}
ber {
setLinkBER $object $value
+ execSetLinkParams $eid $object
}
duplicate {
setLinkDup $object $value
+ execSetLinkParams $eid $object
}
width {
setLinkWidth $object $value
}
}
}
- execSetLinkParams $eid $object
set changed 1
}
}