src/share/vm/utilities/taskqueue.hpp

Print this page
rev 4523 : 7197666: java -d64 -version core dumps in a box with lots of memory
Summary: Allow task queues to be mmapped instead of malloced on Solaris
Reviewed-by: coleenp, jmasa, johnc, tschatzl

*** 251,260 **** --- 251,261 ---- template <class E, MEMFLAGS F, unsigned int N = TASKQUEUE_SIZE> class GenericTaskQueue: public TaskQueueSuper<N, F> { + ArrayAllocator<E, F> _array_allocator; protected: typedef typename TaskQueueSuper<N, F>::Age Age; typedef typename TaskQueueSuper<N, F>::idx_t idx_t; using TaskQueueSuper<N, F>::_bottom;
*** 312,322 **** assert(sizeof(Age) == sizeof(size_t), "Depends on this."); } template<class E, MEMFLAGS F, unsigned int N> void GenericTaskQueue<E, F, N>::initialize() { ! _elems = NEW_C_HEAP_ARRAY(E, N, F); } template<class E, MEMFLAGS F, unsigned int N> void GenericTaskQueue<E, F, N>::oops_do(OopClosure* f) { // tty->print_cr("START OopTaskQueue::oops_do"); --- 313,323 ---- assert(sizeof(Age) == sizeof(size_t), "Depends on this."); } template<class E, MEMFLAGS F, unsigned int N> void GenericTaskQueue<E, F, N>::initialize() { ! _elems = _array_allocator.allocate(N); } template<class E, MEMFLAGS F, unsigned int N> void GenericTaskQueue<E, F, N>::oops_do(OopClosure* f) { // tty->print_cr("START OopTaskQueue::oops_do");