2 *-* parse upper arg option rounds >>> "S 3 " >>> "S" >>> "3 " 3 *-* if option<>"" >>> "1" 3 *-* then 3 *-* .traceObject~option=option [T1 I1 ] 4 *-* say ".traceObject~option:" .traceObject~option [T1 I1 ] >>> ".traceObject~option: S" .traceObject~option: S [T1 I1 ] 5 *-* if rounds="" [T1 I1 ] >>> "0" [T1 I1 ] 7 *-* do counter c rounds [T1 I1 ] >K> "COUNTER" => "0" [T1 I1 ] >K> "FOR" => "3 " [T1 I1 ] >K> "COUNTER" => "1" [T1 I1 ] 8 *-* say "round #" c"/"rounds [T1 I1 ] >>> "round # 1/3 " round # 1/3 [T1 I1 ] 9 *-* obj=.demoMT~new [T1 I2 G L0 ] >I> Method "INIT" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T1 I2 G L1 *] 22 *-* expose ctlAttribute [T1 I2 G L1 *] 23 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T1 I2 G L1 *] >>> "0.085" [T1 I1 ] >>> "a demoMT" [T1 I1 ] 11 *-* obj~~start("mg")~~start("mu")~~start("bumpCtlAttribute") [T1 I1 ] 12 *-* msg=.message~new(obj,"bumpCtlAttribute") -- message to send later [T1 I1 ] >>> "a Message" [T1 I1 ] 13 *-* waitTime=.timeSpan~fromLongTime("00:00:0" || random(15,25)/1000) -- wait a few msecs [T1 I1 ] >>> "a TimeSpan" [T1 I1 ] 15 *-* .alarm~new(waitTime, msg) -- send message after waitTime, will unblock [T2 I3 G L0 ] >I> Method "MG" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T3 I4 U L0 ] >I> Method "MU" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T4 I5 U L0 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T1 I1 ] 16 *-* .alarm~new(waitTime, msg) -- send message after waitTime, will unblock [T2 I3 G L1 *] 35 *-* expose ctlAttribute [T3 I4 U L1 ] 46 *-* expose ctlAttribute [T4 I5 U L1 ] 26 *-* expose ctlAttribute [T2 I3 G L1 *] 36 *-* guard off -- guard off [T1 I1 ] 17 *-* end [T3 I4 U L1 ] 47 *-* guard on -- guard on [T4 I5 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") 32 ctlAttribute=1 [T2 I3 G L0 ] 37 *-* reply -- return, remainder on new thread [T1 I1 ] 7 *-* do counter c rounds [T3 I4 U L1 *] 48 *-* reply -- return, remainder on new thread [T4 I3 G L1 ] >I> Method "MG" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T1 I1 ] >K> "COUNTER" => "2" [T2 I4 U L1 *] >I> Method "MU" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T4 I3 G L1 ] 38 *-* guard on when ctlAttribute>0.250 -- guard on [T1 I1 ] 8 *-* say "round #" c"/"rounds [T2 I4 U L1 *] 49 *-* guard off when ctlAttribute>0.250 -- guard off [T1 I1 ] >>> "round # 2/3 " round # 2/3 [T2 I4 U L1 ] >K> "WHEN" => "1" [T4 I3 G L1 *] >K> "WHEN" => "1" [T1 I1 ] 9 *-* obj=.demoMT~new [T2 I4 U L1 ] 50 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T4 I3 G L1 *] 39 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T1 I6 G L0 ] >I> Method "INIT" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T2 I4 U L1 ] >>> "0.094" [T4 I3 G L1 *] >>> "0.08" [T1 I6 G L1 *] 22 *-* expose ctlAttribute [T2 I4 U L1 ] 51 *-* guard on when ctlAttribute>0.250 -- guard on [T4 I3 G L1 *] 40 *-* call sysSleep random(1,10)/1000 -- add some randomness [T1 I6 G L1 *] 23 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T1 I6 G L1 *] >>> "0.016" [T1 I1 ] >>> "a demoMT" [T1 I1 ] 11 *-* obj~~start("mg")~~start("mu")~~start("bumpCtlAttribute") [T1 I1 ] 12 *-* msg=.message~new(obj,"bumpCtlAttribute") -- message to send later [T3 I7 G L0 ] >I> Method "MG" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T5 I8 U L0 ] >I> Method "MU" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T6 I9 U L0 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T1 I1 ] >>> "a Message" [T3 I7 G L1 *] 35 *-* expose ctlAttribute [T5 I8 U L1 ] 46 *-* expose ctlAttribute [T6 I9 U L1 ] 26 *-* expose ctlAttribute [T1 I1 ] 13 *-* waitTime=.timeSpan~fromLongTime("00:00:0" || random(15,25)/1000) -- wait a few msecs [T3 I7 G L1 *] 36 *-* guard off -- guard off [T5 I8 U L1 ] 47 *-* guard on -- guard on [T6 I9 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") 32 ctlAttribute=1 [T1 I1 ] >>> "a TimeSpan" [T3 I7 G L0 ] 37 *-* reply -- return, remainder on new thread [T5 I8 U L1 *] 48 *-* reply -- return, remainder on new thread [T4 I3 G L1 *] >>> "0" [T1 I1 ] 15 *-* .alarm~new(waitTime, msg) -- send message after waitTime, will unblock [T6 I7 G L1 ] >I> Method "MG" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T4 I3 G L1 *] 41 *-* guard off when ctlAttribute>0.250 -- guard off [T3 I8 U L1 *] >I> Method "MU" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T1 I1 ] 16 *-* .alarm~new(waitTime, msg) -- send message after waitTime, will unblock [T6 I7 G L1 ] 38 *-* guard on when ctlAttribute>0.250 -- guard on [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T3 I8 U L1 *] 49 *-* guard off when ctlAttribute>0.250 -- guard off [T1 I1 ] 17 *-* end [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T3 I8 U L1 ] >K> "WHEN" => "1" [T1 I1 ] 7 *-* do counter c rounds [T6 I7 G L1 *] >K> "WHEN" => "1" [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T3 I8 U L1 ] 50 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T1 I1 ] >K> "COUNTER" => "3" [T6 I7 G L1 *] 39 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T3 I8 U L1 ] >>> "0.068" [T1 I1 ] 8 *-* say "round #" c"/"rounds [T6 I7 G L1 *] >>> "0.097" [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T3 I8 U L1 ] 51 *-* guard on when ctlAttribute>0.250 -- guard on [T1 I1 ] >>> "round # 3/3 " round # 3/3 [T6 I7 G L1 *] 40 *-* call sysSleep random(1,10)/1000 -- add some randomness [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] 9 *-* obj=.demoMT~new [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I10 G L0 ] >I> Method "INIT" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I10 G L1 *] 22 *-* expose ctlAttribute [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I10 G L1 *] 23 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I10 G L1 *] >>> "0.049" [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] >>> "a demoMT" [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] 11 *-* obj~~start("mg")~~start("mu")~~start("bumpCtlAttribute") [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] 12 *-* msg=.message~new(obj,"bumpCtlAttribute") -- message to send later [T7 I11 U L1 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T8 I12 U L1 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T9 I13 G L0 ] >I> Method "MG" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T10 I14 U L0 ] >I> Method "MU" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T11 I15 U L0 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] >>> "a Message" [T7 I11 U L1 ] 26 *-* expose ctlAttribute [T8 I12 U L1 ] 26 *-* expose ctlAttribute [T9 I13 G L1 *] 35 *-* expose ctlAttribute [T10 I14 U L1 ] 46 *-* expose ctlAttribute [T11 I15 U L1 ] 26 *-* expose ctlAttribute [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] 13 *-* waitTime=.timeSpan~fromLongTime("00:00:0" || random(15,25)/1000) -- wait a few msecs [T7 I11 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") [T2 I4 U L1 *] >K> "WHEN" => "0" [T8 I12 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") [T4 I3 G L1 ] >K> "WHEN" => "0" [T9 I13 G L1 *] 36 *-* guard off -- guard off [T10 I14 U L1 ] 47 *-* guard on -- guard on [T11 I15 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] >K> "WHEN" => "0" 32 ctlAttribute=1 [T1 I1 ] >>> "a TimeSpan" [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T9 I13 G L0 ] 37 *-* reply -- return, remainder on new thread [T10 I14 U L1 *] 48 *-* reply -- return, remainder on new thread [T4 I3 G L0 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] 15 *-* .alarm~new(waitTime, msg) -- send message after waitTime, will unblock [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L0 ] >K> "WHEN" => "0" [T11 I13 G L1 ] >I> Method "MG" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T2 I4 U L1 *] >K> "WHEN" => "0" [T12 I14 U L1 *] >I> Method "MU" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T4 I3 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T1 I1 ] 16 *-* .alarm~new(waitTime, msg) -- send message after waitTime, will unblock [T11 I13 G L1 ] 38 *-* guard on when ctlAttribute>0.250 -- guard on [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L0 ] >K> "WHEN" => "0" [T13 I16 U L1 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T12 I14 U L1 *] 49 *-* guard off when ctlAttribute>0.250 -- guard off [T5 I17 U L1 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L0 ] >K> "WHEN" => "0" [T1 I1 ] 17 *-* end [T6 I7 G L1 *] >>> "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L0 ] >K> "WHEN" => "0" [T13 I16 U L1 ] 26 *-* expose ctlAttribute [T2 I4 U L1 *] >K> "WHEN" => "0" [T12 I14 U L1 ] >K> "WHEN" => "1" [T5 I17 U L1 ] 26 *-* expose ctlAttribute [T4 I3 G L1 ] >K> "WHEN" => "0" [T11 I13 G L1 *] >K> "WHEN" => "1" [T1 I1 ] 7 *-* do counter c rounds [T2 I4 U L1 *] >K> "WHEN" => "0" [T6 I7 G L1 *] 41 *-* guard off when ctlAttribute>0.250 -- guard off [T13 I16 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") [T4 I3 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 ] 50 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T6 I7 G L1 ] >K> "WHEN" => "0" [T5 I17 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") [T2 I4 U L1 *] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 *] 39 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T4 I3 G L1 ] >K> "WHEN" => "0" [T6 I7 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T12 I14 U L1 ] >>> "0.024" [T3 I8 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] >K> "WHEN" => "0" [T11 I13 G L1 *] >>> "0.069" [T6 I7 G L1 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 ] 51 *-* guard on when ctlAttribute>0.250 -- guard on [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L0 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 *] 40 *-* call sysSleep random(1,10)/1000 -- add some randomness [T4 I3 G L1 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L1 ] >K> "WHEN" => "0" [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L1 ] >K> "WHEN" => "0" 32 ctlAttribute=0.242 [T2 I4 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] >K> "WHEN" => "0" [T6 I7 G L1 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" 32 ctlAttribute=1 [T2 I4 U L1 *] >K> "WHEN" => "1" [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L0 ] >K> "WHEN" => "0" [T4 I3 G L1 ] >K> "WHEN" => "1" [T2 I4 U L1 *] 52 *-* call sysSleep random(1,10)/1000 -- add some randomness [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L1 ] >K> "WHEN" => "0" [T4 I3 G L1 ] 42 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T6 I7 G L1 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] >>> "0.034" [T6 I7 G L0 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] 43 *-* say .context~name": returning ..." [T6 I7 G L0 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T4 I3 G L1 ] >>> "MG: returning ..." [T6 I7 G L0 ] >K> "WHEN" => "0" MG: returning ... [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L0 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L1 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "0" [T6 I7 G L1 ] >K> "WHEN" => "0" 32 ctlAttribute=0.191 [T3 I8 U L1 *] >K> "WHEN" => "0" 32 ctlAttribute=1 [T6 I7 G L1 ] >K> "WHEN" => "0" [T3 I8 U L1 *] >K> "WHEN" => "1" [T6 I7 G L1 ] >K> "WHEN" => "1" [T3 I8 U L1 *] 52 *-* call sysSleep random(1,10)/1000 -- add some randomness [T6 I7 G L1 ] 42 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T6 I7 G L1 ] >>> "0.066" [T6 I7 G L1 ] 43 *-* say .context~name": returning ..." [T6 I7 G L1 ] >>> "MG: returning ..." MG: returning ... [T2 I4 U L1 *] >>> "0" [T2 I4 U L1 *] 53 *-* say .context~name": returning ..." [T11 I13 G L1 *] >>> "0" [T2 I4 U L1 *] >>> "MU: returning ..." MU: returning ... [T3 I8 U L1 *] >>> "0" [T9 I18 U L1 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T10 I19 U L1 ] >I> Method "BUMPCTLATTRIBUTE" with scope "demoMT" in package "G:\test\orx\trace\docpgm.rex". [T11 I13 G L1 *] 41 *-* guard off when ctlAttribute>0.250 -- guard off [T3 I8 U L1 *] 53 *-* say .context~name": returning ..." [T9 I18 U L1 ] 26 *-* expose ctlAttribute [T10 I19 U L1 ] 26 *-* expose ctlAttribute [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T3 I8 U L1 *] >>> "MU: returning ..." MU: returning ... [T9 I18 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") [T10 I19 U L1 ] 27 *-* TRACE n -- set trace to normal (in method "bumpCtlAttribute") [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" [T12 I14 U L1 *] >K> "WHEN" => "0" [T11 I13 G L1 ] >K> "WHEN" => "0" 32 ctlAttribute=0.217 [T12 I14 U L1 *] >K> "WHEN" => "1" [T11 I13 G L1 ] >K> "WHEN" => "0" 32 ctlAttribute=1 [T12 I14 U L1 *] 52 *-* call sysSleep random(1,10)/1000 -- add some randomness [T11 I13 G L1 ] >K> "WHEN" => "1" [T11 I13 G L1 ] 42 *-* ctlAttribute=random(0,125)/1000 -- add some randomness [T11 I13 G L1 ] >>> "0.016" [T11 I13 G L1 ] 43 *-* say .context~name": returning ..." [T11 I13 G L1 ] >>> "MG: returning ..." MG: returning ... [T12 I14 U L1 *] >>> "0" [T12 I14 U L1 *] 53 *-* say .context~name": returning ..." [T12 I14 U L1 *] >>> "MU: returning ..." MU: returning ...