|
Boost : |
Subject: Re: [boost] [transact] transaction language macros (was: Re: [transact] code in sandbox)
From: strasser_at_[hidden]
Date: 2010-02-21 17:21:47
the changes we've discussed:
https://svn.boost.org/trac/boost/changeset/59827
Zitat von "vicente.botet" <vicente.botet_at_[hidden]>:
> 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
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk