-
Notifications
You must be signed in to change notification settings - Fork 20
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
need a reliable way to kill a solver process #21
Comments
In a similar situation in a different project, I could realize the behaviour by switching from Snoyberg writes (at https://github.com/fpco/typed-process/#typed-process)
simple-smt (as of now) needs lazy IO: it does hGetContents on the solver's full output stream, but that stream is built and consumed in many step of "send a command, check the response." In my fork, I replaced lazy with a S-expression parser that directly works on the stream handle. Super ugly, but at least it makes it clear where an exception could happen (the handle vanishes) |
There's a PR #13 that adds support for just killing a solver as opposed to issuing an |
Maybe. You are right - I should state what I want more clearly: there are (logically) two processes:
my specific problem is: when I kill B (control flow within my application raises AsyncCancelled in the thread) I also need to kill A (so, the exception must be caught, and handled) I think that lazy IO (as currently used) makes this harder, The situation is a bit different (and simpler) with SAT solvers in |
I am starting two solvers concurrently. When one returns with a result, I want to kill the other. Ideally, the following should work
but it does not. yices finds a solution, the program stops, but cvc5 keeps running.
The text was updated successfully, but these errors were encountered: