TeamAmalgam / kodkod

Kodkod relational model finder
Other
3 stars 0 forks source link

Allow exceptions to propogate from solver thread to main thread. #37

Closed cpkleynhans closed 11 years ago

cpkleynhans commented 11 years ago

Currently if an uncaught exception occurs in a multiobjective algorithm the thread will be terminated but the main thread will continue waiting for solutions indefinitely.

This change allows us to add exceptions to the blocking queue which will be rethrown by the BlockingSolutionIterator, thus terminating the main thread when the solver thread dies.

This change will require modifications to all MultiObjectiveAlgorithms as it changes the interface. multiObjectiveSolve is no longer abstract, instead the abstract template method multiObjectiveSolveImpl should be implemented by the various algorithms.

Reviewers: @AtulanZaman @joseph2625 @mhyee

cpkleynhans commented 11 years ago

@mhyee @AtulanZaman @joseph2625 Any comments?

mhyee commented 11 years ago

Looks good.

joseph39 commented 11 years ago

Looks good.