
the changes we've discussed: https://svn.boost.org/trac/boost/changeset/59827 Zitat von "vicente.botet" <vicente.botet@wanadoo.fr>:
Yes, we can. But the result of the break is that we don't retry, i.e. we abort the transaction. If you prefer you can throw an isolation_exception when the user uses break or continue instead of asserting it don't use it.
I'm pretty sure you're trying to stop the user from shooting himself in the foot here. instead of "break", the user could also "return" from a retry clause. or throw an exception and absorbing it outside of the transactino scope, with similar results. I think "break" should break, not assert and not throw, just because we think this is what the user should have done.
try{ //... }catch(my_exc &){ transaction{ //... }retry{ throw; } }
is it expected behaviour that this rethrows isolation_exception, not my_exc?
yes, IMO the exception must be isolation_exception, or a specific exception the library documents and make the outer transaction to abort.
OK. moved the user's retry code back into the catch-clause. best, Stefan