runtimeverification / haskell-backend

The symbolic execution engine powering the K Framework
BSD 3-Clause "New" or "Revised" License
212 stars 42 forks source link

Use an IORef to hold a reference to the solver/solverClose #3977

Closed goodlyrottenapple closed 4 months ago

goodlyrottenapple commented 4 months ago

Fixes (hopefully) #3959 by making the solver/solverClose handles into an IORef. This way, we can be (reasonably) sure that when we write the new handles into the IORef, there will be no other references held to the old ones elsewhere, which was previously preventing the old z3 instance from terminating, leaving a zombie process.