Not being a user who writes multi-threaded ooRexx programs, I have
remained silent until now. However, it seems to me that there are
enough objections to the proposal that would add this to TRACE that we
should consider alternatives. I appreciate the need for the information
and the work done
Lurker here... If I understand correctly, these thread numbers would be
from the underlying OS (UNIX, Windows, z/OS...)? If so, you should be aware
that on z/OS thread numbers are *huge*. What they've done under the covers
is obviously to encode other info (TCB address or something?) in the high
I’m in complete agreement with Mike on this. There are better ways to make
this sort of information available than trying to force fit it In to
trace.
Rick
On Wed, Feb 15, 2023 at 12:58 PM Mike Cowlishaw wrote:
> Thanks for the multiple examples!
>
> As for the 'spaced out' case (excerpt
Thanks for the multiple examples!
As for the 'spaced out' case (excerpt below) ... this really would not work
for me. I often have 5-9 windows open when I'm programming and these are
80 characters wide so I can minimise overlaps. With the suggested layout
this would only work for programs
Here the code of "mt91.rex", changes (compared to "mt90.rex") in bold, i.e.
commenting :
say "--->" .context~name
trace r
t=.Test~new
t~m1
t~m2
*-- t~block -- wait for both methods to complete* *t**~**start(**"M1"**) **-- asynchroneous!
**t**~**start(**"M2"**) **--
Here the code of "mt90.rex", changes (compared to "mt03.rex") in bold:
say "--->" .context~name
trace r
t=.Test~new
t~m1
t~m2
t~block-- wait for both methods to complete
*t**~**send(**"M1"**)t**~**send(**"M2"**)t**~**block **-- wait for both methods to complete
Here the code of "mt03.rex", changes (compared to "mt02.rex") in bold:
say "--->" .context~name
trace r
t=.Test~new
*t**~**start(**"M1"**) **-- send message on separate thread
**t**~**start(**"M2"**) **-- send message on separate thread* t~block-- wait for both
methods to complete,
Here the code of "mt02.rex", changes (compared to "mt01.rex") in bold:
say "--->" .context~name
trace r
t=.Test~new
t~m1-- same as: t~send('M1'), waits for return t~m2-- same as: t~send('M2'),
waits for return t~block-- wait for both methods to complete, -- same as:
In order to create trace information for multithreaded ooRexx programs I will come up with a few
simple/small programs, each on a separate e-mail.
First the program will get displayed, its trace output, trace output formatted according to the idea
to include the thread number in the trace
Here the code of "mt01.rex":
say "--->" .context~name
trace r
t=.Test~new
t~m1-- same as: t~send('M1'), waits for return t~m2-- same as: t~send('M2'),
waits for return t~block-- wait for both methods to complete, -- same as:
t~send('BLOCK'), waits for return ::class Test-- a test
10 matches
Mail list logo