diff options
author | torvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-24 01:42:48 +0000 |
---|---|---|
committer | torvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4> | 2011-12-24 01:42:48 +0000 |
commit | df06fec8e4debb6155917d63d7ecce3da0c70d53 (patch) | |
tree | e009d551aaef7b58ada2c219361dd260fdadd8ce /libitm | |
parent | c4c0a912745588307c7be984615a825edd421bbd (diff) | |
download | gcc-df06fec8e4debb6155917d63d7ecce3da0c70d53.tar.gz |
libitm: Don't enforce privatization safety if already in serial mode.
libitm/
* beginend.cc (GTM::gtm_thread::trycommit): Don't enforce
privatization safety if already in serial mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@182676 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libitm')
-rw-r--r-- | libitm/ChangeLog | 5 | ||||
-rw-r--r-- | libitm/beginend.cc | 7 |
2 files changed, 11 insertions, 1 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index abdf4fb62d8..d2f0fd752f0 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -1,5 +1,10 @@ 2011-12-24 Torvald Riegel <triegel@redhat.com> + * beginend.cc (GTM::gtm_thread::trycommit): Don't enforce + privatization safety if already in serial mode. + +2011-12-24 Torvald Riegel <triegel@redhat.com> + * beginend.cc (GTM::gtm_thread::restart): Add and handle finish_serial_upgrade parameter. * libitm.h (GTM::gtm_thread::restart): Adapt declaration. diff --git a/libitm/beginend.cc b/libitm/beginend.cc index 17f9d7490d8..797548192eb 100644 --- a/libitm/beginend.cc +++ b/libitm/beginend.cc @@ -457,7 +457,12 @@ GTM::gtm_thread::trycommit () // The transaction is now inactive. Everything that we still have to do // will not synchronize with other transactions anymore. if (state & gtm_thread::STATE_SERIAL) - gtm_thread::serial_lock.write_unlock (); + { + gtm_thread::serial_lock.write_unlock (); + // There are no other active transactions, so there's no need to + // enforce privatization safety. + priv_time = 0; + } else gtm_thread::serial_lock.read_unlock (this); state = 0; |