summaryrefslogtreecommitdiff
path: root/libitm/method-gl.cc
diff options
context:
space:
mode:
authortorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>2016-01-13 12:40:34 +0000
committertorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>2016-01-13 12:40:34 +0000
commit1246355c4c2ed8cd81a6baed380685e32414133a (patch)
tree0f4bfc83fa01d0a035d86c869e199905d89075cb /libitm/method-gl.cc
parent2e1cb7c04a9c5336615dfafdee1cb7fc1caf7559 (diff)
libitm: Fix privatization safety interaction with serial mode.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@232322 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libitm/method-gl.cc')
-rw-r--r--libitm/method-gl.cc9
1 files changed, 9 insertions, 0 deletions
diff --git a/libitm/method-gl.cc b/libitm/method-gl.cc
index 87d01dbf1f1d..b2e2bcad71e6 100644
--- a/libitm/method-gl.cc
+++ b/libitm/method-gl.cc
@@ -338,6 +338,15 @@ public:
}
+ virtual bool snapshot_most_recent()
+ {
+ // This is the same check as in validate() except that we do not restart
+ // on failure but simply return the result.
+ return o_gl_mg.orec.load(memory_order_relaxed)
+ == gtm_thr()->shared_state.load(memory_order_relaxed);
+ }
+
+
CREATE_DISPATCH_METHODS(virtual, )
CREATE_DISPATCH_METHODS_MEM()