[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