We need some rules for designing by committee.  First rule is that nothing is agreed until it comes with a spec for action.  It is true that you (Pascal) suggested having a T.-function to shut down a thread, and Raul & I agreed.  But that's merely an agreement of interest.  It's not a commitment to action.  To begin with, we have to define what 'shutdown' means.  Does it leave the execution stack for inspection?  Does it delete global names & values?  Does the action depend on whether debug is running?

I think there should be a difference between interrupting a thread and killing or shutting it down.  jbreak normally signals error, which terminates everything on the execution  stack unless debug is enabled.  Let's call that 'interrupting' the thread.  The proposal is that jbreak should interrupt all threads.

We must consider how violently to interrupt the threads.  Stopping a sentence in the middle of execution is risky: the sentence can't be resumed in the middle, and it may be impossible to continue execution.  The gentler action is to wait for a sentence to finish.  That's what jbreak does.

Should there be a jbreak for an individual thread?  Should we allow for resuming individual threads?

The JE design has a feature called the 'system lock', which brings all threads to a stopping place before continuing execution in a single thread.  That is how debug is entered.  Perhaps jbreak should interrupt thread 0, which will enter debug if that is enabled or signal error in the other threads if debug is not enabled?

Just ideas.

Henry Rich



On 4/13/2022 10:09 AM, 'Pascal Jasmin' via Beta wrote:
I think we agreed that there should be an x T. threadid function that shutsdown 
a thread.

jbreak.bat should shut down all non idle threads "too".






On Wednesday, April 13, 2022, 09:57:24 a.m. EDT, Henry Rich 
<[email protected]> wrote:





Responding to jbreak still needs to be designed.  Currently it will
interrupt only the first thread that sees it.  That seems wrong.  How
should it work?

Don't draw too many conclusions from the behavior of beta-a in edge cases.

Henry Rich

On 4/13/2022 9:42 AM, Raul Miller wrote:
On Wed, Apr 13, 2022 at 8:46 AM Henry Rich <[email protected]> wrote:
I don't think this is a deadlock.  It's just an infinite recursion, made
painfully slow by the delay.
In my case, it was the script I had sent you that was hanging, and was
not (after a few seconds, or a few hours) interruptible.

Shouldn't it at least be interruptible?

Thanks,


--
Raul
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm



--
This email has been checked for viruses by AVG.
https://www.avg.com

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to