Boost logo

Boost :

Subject: Re: [boost] [transact] code in sandbox
From: vicente.botet (vicente.botet_at_[hidden])
Date: 2010-02-17 02:52:38


----- Original Message -----
From: "Bob Walters" <bob.s.walters_at_[hidden]>
To: <boost_at_[hidden]>
Sent: Wednesday, February 17, 2010 7:43 AM
Subject: Re: [boost] [transact] code in sandbox

On Sun, Feb 14, 2010 at 6:53 PM, vicente.botet <vicente.botet_at_[hidden]> wrote:
> Hi, here they are some of operations I need
>
> void rollback(); | void abort();
> void rollback_only(); | void force_to_abort();

Can you clarify the difference between these two?

> void restart();
>
> bool is_top_level();
> transaction_state status();
> where
> enum transaction_state {
> active,
> marked_roolback_only, | forced_to_abort
> prepared,
> committed,
> rolledback,
> preparing,
> committing,
> rollingback
> ...
> };

If you are expecting the TM used in common among all libraries to
support these states, then you have to clarify what these states mean,
and how they apply to the interaction between the TM and the RM of
Boost.STM. Have you considered the possibility that some of these
states might be needed only on the STM-specific transaction data,
tracked interanlly. I am guessing that marked_rollback_only,
preparing, committing, and rollingback might all be statuses which you
don't have to expose in your interaction with the TM.

Thanks,
- Bob
_______________________________________________
Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost

The "|" marks alternative names, i.e. two proposals.

preparing, committing, and rollingback should not appear, as the comit is not done asynchronously as all the resource managers are local to the process.

marked_rollback_only or forced_to_abort seems to me a unseful information for the user.

Vicente


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk