Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

RIDE v4.4: change needed re MA and RM #698

Closed
FionaDyalog opened this issue May 6, 2021 · 4 comments · Fixed by #711
Closed

RIDE v4.4: change needed re MA and RM #698

FionaDyalog opened this issue May 6, 2021 · 4 comments · Fixed by #711
Assignees
Milestone

Comments

@FionaDyalog
Copy link

Changes made to the IDE that need to be reflected in the RIDE (confirmed by Morten):

IDE:

  • Changed MA “Resume all threads (in tracer)” to “Un-pause all paused threads”
  • Changed RM “Resume execution (in tracer)” to “Continue execution of all threads”

The text has changed in the pop-up tips on the tracer toolbar, and in the HINTs (bottom of the session) for the menu items. The display of these descriptions in the “Keyboard Shortcuts” section of the configure dialog has been changed too. The actual text on the menu items has not changed for fear of making them too wide.

@aplteam
Copy link

aplteam commented May 6, 2021 via email

@mkromberg
Copy link
Contributor

Threads can be paused by the user explicitly, or as a result of "pause on error". A paused thread will suspend at the next thread switch point, which could be in the middle of a line (in a ⎕FHOLD, for example). Un-pause all threads allows these threads to be scheduled again.

"Suspended" threads (interrupted or stopped due to an error) need to be restarted with a →⎕LC, which "restarts" the line. To be precise, "Resume execution" will do →⎕LC for suspended threads AND unpause paused threads.

We struggled for a long time to come up with short phrases to describe this, perhaps we should just have given up.

@e9gille e9gille added this to the RIDE 4.4 milestone May 6, 2021
@e9gille
Copy link
Contributor

e9gille commented May 6, 2021

For what it's worth, I think I finally understand the difference having looked at the issues with these commands in RIDE, but I can't think of better descriptions either.

If you have multiple threads running and "Pause on error" is set, when you interrupt or a thread signals an error, all threads are paused and one thread is suspended.

At this point I have the following options:

  1. Continue execution of all threads (RM)
  2. Continue execution of all other threads (MA), leaving the suspended thread in a "stopped/suspended" state (with tracer perhaps still open).
  3. Continue execution of only the suspended thread. (→⎕LC)

Is this right?

@mkromberg
Copy link
Contributor

MA is only "continue all other threads" in the example where you have a single suspended thread. You could quite easily have more, for example after a service thread has crashed and then a client thread times out waiting for it and also crashes.

@e9gille e9gille linked a pull request May 11, 2021 that will close this issue
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants