diff options
author | Torvald Riegel <triegel@redhat.com> | 2012-01-13 23:45:42 +0000 |
---|---|---|
committer | Torvald Riegel <torvald@gcc.gnu.org> | 2012-01-13 23:45:42 +0000 |
commit | aab74ee9d400976da7107d9554e3fa7b665160d4 (patch) | |
tree | 803f55638005c5547011fe54e4030d6a5ba9bd6f | |
parent | 07b6642b935e1cd499a2aae071db06d845e39a8b (diff) | |
download | gcc-aab74ee9d400976da7107d9554e3fa7b665160d4.zip gcc-aab74ee9d400976da7107d9554e3fa7b665160d4.tar.gz gcc-aab74ee9d400976da7107d9554e3fa7b665160d4.tar.bz2 |
libitm: Truncate undo log after rolling back.
libitm/
* local.cc (GTM::gtm_undolog::rollback): Truncate undo log after
rolling back.
* containers.h (GTM::vector::set_size): New.
From-SVN: r183173
-rw-r--r-- | libitm/ChangeLog | 6 | ||||
-rw-r--r-- | libitm/containers.h | 1 | ||||
-rw-r--r-- | libitm/local.cc | 1 |
3 files changed, 8 insertions, 0 deletions
diff --git a/libitm/ChangeLog b/libitm/ChangeLog index 8efaef5..ad07098 100644 --- a/libitm/ChangeLog +++ b/libitm/ChangeLog @@ -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. diff --git a/libitm/containers.h b/libitm/containers.h index 394b6f2..3690565 100644 --- a/libitm/containers.h +++ b/libitm/containers.h @@ -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() { diff --git a/libitm/local.cc b/libitm/local.cc index 5645a12..d0d96ce 100644 --- a/libitm/local.cc +++ b/libitm/local.cc @@ -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); } } |