-
Notifications
You must be signed in to change notification settings - Fork 5
Description
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.