OSDN Git Service

libitm: Truncate undo log after rolling back.
authortorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jan 2012 23:45:42 +0000 (23:45 +0000)
committertorvald <torvald@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 13 Jan 2012 23:45:42 +0000 (23:45 +0000)
libitm/
* local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
rolling back.
* containers.h (GTM::vector::set_size): New.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@183173 138bc75d-0d04-0410-961f-82ee72b054a4

libitm/ChangeLog
libitm/containers.h
libitm/local.cc

index 8efaef5..ad07098 100644 (file)
@@ -1,5 +1,11 @@
 2012-01-14  Torvald Riegel  <triegel@redhat.com>
 
+       * local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
+       rolling back.
+       * containers.h (GTM::vector::set_size): New.
+
+2012-01-14  Torvald Riegel  <triegel@redhat.com>
+
        PR libitm/51855
        * config/generic/tls.h (GTM::mask_stack_top): New.
        (GTM::mask_stack_bottom): Declare.
index 394b6f2..3690565 100644 (file)
@@ -92,6 +92,7 @@ class vector
   size_t size() const { return m_size; }
   size_t capacity() const { return this->capacity; }
 
+  void set_size (size_t size) { m_size = size; }
   void clear() { m_size = 0; }
 
   iterator push() {
index 5645a12..d0d96ce 100644 (file)
@@ -61,6 +61,7 @@ gtm_undolog::rollback (gtm_thread* tx, size_t until_size)
           if (likely(ptr > top || (uint8_t*)ptr + len <= bot))
             __builtin_memcpy (ptr, &undolog[i], len);
        }
+      undolog.set_size(until_size);
     }
 }