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

More comprehensive thread management for long-running brains #7

Open
aarant opened this issue Sep 14, 2017 · 0 comments
Open

More comprehensive thread management for long-running brains #7

aarant opened this issue Sep 14, 2017 · 0 comments
Assignees

Comments

@aarant
Copy link
Owner

aarant commented Sep 14, 2017

Right now, Soar mostly assumes that brains will behave nicely--they will not take too long to run, will not call blocking methods like input(), etc. Not all brains will necessarily meet this expectations, and it would be nice if Soar had a way of dealing with poorly behaved brains other than hanging and waiting for them to complete--binding Ctrl-C to force a controller failure is a start, but does not work if the client mainloop is what is running/hanging. A better approach might be to assign priorities to client futures--high priority functions like controller failures will be executed asynchronously (and orphaning threads might be necessary, as Python has no way to explicitly kill threads), while low priority ones will be executed in the order in which they are received. This will require a minor overhaul of how Soar does thread management in general.

@aarant aarant self-assigned this Sep 14, 2017
aarant added a commit that referenced this issue Sep 14, 2017
Ctrl-C in the main GUI will now force a controller failure.
Along with intercepting calls to input(), this is a temporary fix
for #7.

PioneerRobot's (x, y, theta) position attribute is now .pose, not
.pos. Assignment and accesses to .pos will still work; they just
shadow .pose now.

Closed #6 by also binding right-click methods to Ctrl-click.
Removed debug statement in PioneerRobot left in by mistake.
Using PlotWindow outside of Soar no longer opens an extra window.
Hopefully fixed error with documentation not building on RTD.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant