In Lang.Crucible.Backend.Online interactions with the solver process are generally guarded with exception handlers in order to ensure that the solver process is transparently restarted when necessary. However, in some cases closing the IO channel will raise an IO exception despite being wrapped in maybe (i.e. maybe (return ()) hClose auxh). This can potentially get the online solver into an inconsistent state, or get higher-level tools into an inconsistent state.
In
Lang.Crucible.Backend.Online
interactions with the solver process are generally guarded with exception handlers in order to ensure that the solver process is transparently restarted when necessary. However, in some cases closing the IO channel will raise an IO exception despite being wrapped inmaybe
(i.e.maybe (return ()) hClose auxh
). This can potentially get the online solver into an inconsistent state, or get higher-level tools into an inconsistent state.