pietrobraione / jbse

A symbolic Java virtual machine for program analysis, verification and test generation
http://pietrobraione.github.io/jbse/
GNU General Public License v3.0
101 stars 29 forks source link

State clones are not reentrant #20

Closed pietrobraione closed 5 years ago

pietrobraione commented 5 years ago

If I make multiple clones of a State, I cannot use them as the initial states of different JBSE instances running concurrently, because they all share the same instance of Calculator, and thus concurrent JBSE instances reenter in it disrupting calculations as Calculators are not in general reentrant. This is problematic since the dependency on the Calculator is pervasively injected in all the Primitives and DecisionProcedures. The experiment of wrapping the Calculator so it is guarded by a mutex did not work, for a reason that is not really clear yet.

pietrobraione commented 5 years ago

Solved by commit 44851b8.