10 JOB NAME launcher
20 EX 'test'
30 EW 'test'


When I

   EX 'launcher'

in my SMSQ/E from SBASIC 0,0,0, then the 'test' job that was EXeced belongs to SBASIC 0,0,0 and the 'test' job that was EWed belongs to launcher.

You shouldn't be... :-)

It's actually pretty logical (at least to me).

Week end, so a little time to argue.

No it looks not logical to me. At least not with a mathematical view to the question :)

When you EW a prog, then you say that you want the job that EW'd this prog to wait until this prog ends. There is thus a definite relationship between the prog and the job.

Hence the owner of the prog is the calling job, and, when it activates the prog, it signals that it has to wait until completion of the prog. There is a relationship between both.

I know I use this.

However, when you EX a program, there is not necessarily any relation between the calling job and the prog that is being EX'd.

I understand this behavior

Example: I routinely launch programs from the command line in an Sbasic daughter job (I practically never use job 0).
Do I want these programs to go away when I close this particular Sbasic ?
Definitely not!!!!


So the keyword was designed that way.

My memories of old readings are in accordance with what Rich says: an EXECed or EXEC_Wed job is owned by the launcher. But it was changed I understand why.


However if the scheme was still as in the beginning of QDOS, then under SMSQ/E the way I would use it, Wolfgang, would be to have a child SBASIC somewhere, possibly in a button and certainly on a hotkey, possibly with the simple #0 open (SBASIC 1) only to lauch jobs to be EXECed. And that launcher SBASIC job would always be there, like the HOTKEY job for example.

What you want is that the EX'd prog be owned by the launcher job, which uis what I definitely wouldn't want.
The only solution I can see would be a new keyword. How about "EX_M" (EXec with Me as owner)?


This could be a trivial change that I could build into the next version of SMSQ/E.

Would that solve your problem?

Yes it would be something.

But as George reminds us (and I also remember this from old readings) in assembler it is very easy to change the owner of an already launched job, from inside or outside of that job. It is the matter of changing the value of 1 btye somewhere in memory, certainly in supervisor mode.

Why not a new keyword to give that possibility also to SBASIC programmers?

I am quite sure that this is the kind of flexibility that few, if any, other multitasking OSes allow.

Wolfgang

Arnould

_______________________________________________
QL-Users Mailing List

Reply via email to