Opened 14 years ago

Closed 13 years ago

#1879 closed Tasks (invalid)

region allocators: auto_alloc, scoped_alloc

Reported by: xushiwei Owned by: xushiwei
Milestone: Boost 1.36.0 Component: None
Version: Boost 1.35.0 Severity: Problem
Keywords: Cc:

Description

Changeset [44874]:

1. gc_alloc_imp => region_alloc
2. block_pool_imp::alloc_size, proxy_alloc::alloc_size

Changeset [44872]:

use global variable to initialize _tls_block_pool

Change History (21)

comment:1 by xushiwei, 14 years ago

Changeset [44903]:

On Wed, Apr 30, 2008 at 5:09 AM, Steven Watanabe <watanabesj@gmail.com> wrote:

    Don't use reserved identifiers.  (Any name containing a double
    underscore is reserved).

    In Christ,
    Steven Watanabe

comment:2 by xushiwei, 14 years ago

Related ticket: #1885 (gc_alloc).

comment:3 by xushiwei, 14 years ago

[44938]:

I should have given a more complete description of reserved names:

* Any identifier containing a double underscore.
* Any identifier beginning with an underscore and a capital letter.
* All names beginning with an underscore in the global namespace.

comment:4 by anonymous, 14 years ago

[44939]:

Since, stl_alloc holds a pointer to the real allocator, shouldn't
stl_alloc<void, ...> also have such a pointer and the appropriate
constructors?

You should partially specialize:
template<class Alloc>
class stl_alloc<void, Alloc> { ... };

Also, the typedefs and rebind template of stl_alloc<void, ...> should be
public.

My personal preference would be to spell out stl_allocator entirely rather
than abbreviating it to stl_alloc.
  1. change class name: stl_alloc -> stl_allocator
  1. partially specialize stl_allocator

comment:5 by anonymous, 14 years ago

[44940]: stl_allocator::_Getalloc -> inner_GetAlloc

comment:6 by xushiwei, 14 years ago

[44945]: support BOOST_NO_PARTIAL_SPECIAILIZATION

comment:7 by xushiwei, 14 years ago

[45009]:

  1. macros are all prefixed with BOOST_MEMORY to avoid conflicts.
  2. everything goes into namespace boost::memory, rather than directly in namespace boost.

comment:8 by xushiwei, 14 years ago

[45165]:

1. move threadmodel, winapi to boost::detail
2. add log, debug, performance_counter to boost::detail

comment:9 by anonymous, 14 years ago

[45169]: lockfree stack

comment:10 by xushiwei, 14 years ago

Type: BugsTasks

comment:11 by xushiwei, 14 years ago

[45174]: system pool (lock) vs. system pool (lock free)

comment:12 by xushiwei, 14 years ago

[45175]: use system pool alloc instead of stdlib alloc

comment:13 by xushiwei, 14 years ago

[45190]:

  1. Update GC Allocator specification. The following is minimum specification for GC Allocator:
typedef void (*DestructorType)(void* data);
 
concept GCAllocator
{
    // Allocate memory without given a cleanup function
    void* allocate(size_t cb);
 
    // Allocate unmanaged memory with a cleanup function
    void* unmanaged_alloc(size_t cb, DestructorType fn);

    // Commit unmanaged memory to be managed.
    void* manage(void* p, destructor_t fn);
 
    // Deprecated: allocate memory with a cleanup function
    void* allocate(size_t cb, DestructorType fn) {
       return manage(unmanaged_alloc(cb, fn), fn);
    }

    // Cleanup and deallocate all allocated memory by this GC Allocator
    void clear();
 
    // Swap two GCAllocator instances
    void swap(GCAllocator& o);
};
  1. testExceptionSemantics

comment:14 by xushiwei, 14 years ago

[45192]:

1. BOOST_MEMORY_NO_STRICT_EXCEPTION_SEMANTICS.
2. gc_alloc defect: Segment fault in 64bits platform. 

comment:15 by xushiwei, 14 years ago

[45193]: Use std::vector instead of std::deque as PriorityQ underlying container

comment:16 by xushiwei, 14 years ago

[45199]: performance enhancement.

comment:18 by anonymous, 14 years ago

[45337]: Workaround ABA problem - bugfix.

comment:19 by xushiwei, 14 years ago

Owner: set to xushiwei
Status: newassigned

comment:20 by xushiwei, 14 years ago

[45417]: linux/gcc

comment:21 by Steven Watanabe, 13 years ago

Resolution: invalid
Status: assignedclosed

As with #1885, this is not an appropriate use of Trac.

Note: See TracTickets for help on using tickets.