The next beta will support jbreak in multiple threads, as follows:

Recall that running jbreak once raises the ATTN condition.  This is a gentle tap on the shoulder, asking JE to stop at the start of a new sentence.  A thread that is stopped by ATTN can be restarted reliably.  Running jbreak a second time raises the BREAK condition.  This poleaxes JE into immediate insensibility, possibly in the middle of a sentence, and you are on your own to decide whether continuation is feasible.

When debug suspension is disabled, a single jbreak will be detected by the first task that starts a sentence.  That task will fail with an 'attention interrupt' error.  The system will then automatically simulate a second jbreak to force quick termination of all other tasks with the 'break' error.  If the user issues a second break before the ATTN has been noticed, it will force immediate termination of all tasks with the 'break' error.

When debug suspension is enabled, a single jbreak will be noticed by all tasks when they start a sentence or when they wait for a pyx after another task has noticed the break.  After all tasks have noticed the break, the system enters debug suspension.  The first thread that noticed the break will be the debug thread and the others will be dormant until execution is resumed.  If the user issues a second break before the ATTN has been noticed, all tasks will interrupt their sentences as soon as possible to enter debug suspension with the 'break' error.  You are on your own to decide whether continuation is feasible.

There is no automatic detection of deadlock.  double-jbreak is the only way out of deadlock/livelock.

Henry Rich

--
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