[PATCH][WIP] libstdc++: Make certain exceptions transaction_safe.
Jonathan Wakely
jwakely@redhat.com
Thu Dec 17 20:04:00 GMT 2015
On 14/11/15 20:45 +0100, Torvald Riegel wrote:
>+void
>+_txnal_cow_string_D1(void *that)
>+{
>+ typedef std::basic_string<char> bs_type;
>+ bs_type::_Rep *rep = reinterpret_cast<bs_type::_Rep*>(
>+ const_cast<char*>(_txnal_cow_string_c_str(that))) - 1;
>+
>+ // The string can be shared, in which case we would need to decrement the
>+ // reference count. We cannot undo that because we might loose the string
>+ // otherwise. Therefore, we register a commit action that will dispose of
>+ // the string's _Rep.
>+ enum {_ITM_noTransactionId = 1};
>+ _ITM_addUserCommitAction(_txnal_cow_string_D1_commit, _ITM_noTransactionId,
>+ rep);
>+}
s/loose/lose/
More information about the Gcc-patches
mailing list