From e3419f9c45476f27e1c89edff5ab557039cdd384 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 22 Aug 2013 22:42:36 -0700 Subject: rt: Memory regions are never synchronized now --- src/rt/memory_region.cpp | 24 +++++------------------- 1 file changed, 5 insertions(+), 19 deletions(-) (limited to 'src/rt/memory_region.cpp') diff --git a/src/rt/memory_region.cpp b/src/rt/memory_region.cpp index 0d58d4dae92..e75df3db074 100644 --- a/src/rt/memory_region.cpp +++ b/src/rt/memory_region.cpp @@ -42,30 +42,25 @@ inline void memory_region::maybe_print_backtrace(const alloc_header *header) con # endif } -memory_region::memory_region(bool synchronized, - bool detailed_leaks, +memory_region::memory_region(bool detailed_leaks, bool poison_on_free) : _parent(NULL), _live_allocations(0), _detailed_leaks(detailed_leaks), - _poison_on_free(poison_on_free), - _synchronized(synchronized) { + _poison_on_free(poison_on_free) { } memory_region::memory_region(memory_region *parent) : _parent(parent), _live_allocations(0), _detailed_leaks(parent->_detailed_leaks), - _poison_on_free(parent->_poison_on_free), - _synchronized(parent->_synchronized) { + _poison_on_free(parent->_poison_on_free) { } void memory_region::add_alloc() { - //_live_allocations++; - sync::increment(_live_allocations); + _live_allocations++; } void memory_region::dec_alloc() { - //_live_allocations--; - sync::decrement(_live_allocations); + _live_allocations--; } void memory_region::free(void *mem) { @@ -112,7 +107,6 @@ memory_region::realloc(void *mem, size_t orig_size) { # endif # if RUSTRT_TRACK_ALLOCATIONS >= 2 - if (_synchronized) { _lock.lock(); } if (_allocation_list[newMem->index] != alloc) { printf("at index %d, found %p, expected %p\n", alloc->index, _allocation_list[alloc->index], alloc); @@ -125,7 +119,6 @@ memory_region::realloc(void *mem, size_t orig_size) { // printf("realloc: stored %p at index %d, replacing %p\n", // newMem, index, mem); } - if (_synchronized) { _lock.unlock(); } # endif return get_data(newMem); @@ -160,9 +153,7 @@ memory_region::malloc(size_t size, const char *tag) { } memory_region::~memory_region() { - if (_synchronized) { _lock.lock(); } if (_live_allocations == 0 && !_detailed_leaks) { - if (_synchronized) { _lock.unlock(); } return; } char msg[128]; @@ -193,7 +184,6 @@ memory_region::~memory_region() { fprintf(stderr, "%s\n", msg); assert(false); } - if (_synchronized) { _lock.unlock(); } } void @@ -204,7 +194,6 @@ memory_region::release_alloc(void *mem) { # endif # if RUSTRT_TRACK_ALLOCATIONS >= 2 - if (_synchronized) { _lock.lock(); } if (((size_t) alloc->index) >= _allocation_list.size()) { printf("free: ptr 0x%" PRIxPTR " (%s) index %d is beyond allocation_list of size %zu\n", (uintptr_t) get_data(alloc), alloc->tag, alloc->index, _allocation_list.size()); @@ -222,7 +211,6 @@ memory_region::release_alloc(void *mem) { _allocation_list[alloc->index] = NULL; alloc->index = -1; } - if (_synchronized) { _lock.unlock(); } # endif dec_alloc(); @@ -236,9 +224,7 @@ memory_region::claim_alloc(void *mem) { # endif # if RUSTRT_TRACK_ALLOCATIONS >= 2 - if (_synchronized) { _lock.lock(); } alloc->index = _allocation_list.append(alloc); - if (_synchronized) { _lock.unlock(); } # endif # if RUSTRT_TRACK_ALLOCATIONS >= 3 -- cgit 1.4.1-3-g733a5 From b4ef59db2fdf3d2f2c239a03f60569196a8df44d Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Thu, 22 Aug 2013 22:44:01 -0700 Subject: rt: Remove sync.h --- src/rt/memory_region.cpp | 1 - src/rt/sync/sync.h | 53 ------------------------------------------------ 2 files changed, 54 deletions(-) delete mode 100644 src/rt/sync/sync.h (limited to 'src/rt/memory_region.cpp') diff --git a/src/rt/memory_region.cpp b/src/rt/memory_region.cpp index e75df3db074..4a34312c6d4 100644 --- a/src/rt/memory_region.cpp +++ b/src/rt/memory_region.cpp @@ -9,7 +9,6 @@ // except according to those terms. -#include "sync/sync.h" #include "memory_region.h" #if RUSTRT_TRACK_ALLOCATIONS >= 3 diff --git a/src/rt/sync/sync.h b/src/rt/sync/sync.h deleted file mode 100644 index 6ac97d57933..00000000000 --- a/src/rt/sync/sync.h +++ /dev/null @@ -1,53 +0,0 @@ -// Copyright 2012 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -#ifndef SYNC_H -#define SYNC_H - -class sync { -public: - template - static bool compare_and_swap(T *address, - T oldValue, T newValue) { - return __sync_bool_compare_and_swap(address, oldValue, newValue); - } - - template - static T increment(T *address) { - return __sync_add_and_fetch(address, 1); - } - - template - static T decrement(T *address) { - return __sync_sub_and_fetch(address, 1); - } - - template - static T increment(T &address) { - return __sync_add_and_fetch(&address, 1); - } - - template - static T decrement(T &address) { - return __sync_sub_and_fetch(&address, 1); - } - - template - static T read(T *address) { - return __sync_add_and_fetch(address, 0); - } - - template - static T read(T &address) { - return __sync_add_and_fetch(&address, 0); - } -}; - -#endif /* SYNC_H */ -- cgit 1.4.1-3-g733a5