comparison src/share/vm/gc_implementation/g1/ptrQueue.hpp @ 4787:2ace1c4ee8da

6888336: G1: avoid explicitly marking and pushing objects in survivor spaces Summary: This change simplifies the interaction between GC and concurrent marking. By disabling survivor spaces during the initial-mark pause we don't need to propagate marks of objects we copy during each GC (since we never need to copy an explicitly marked object). Reviewed-by: johnc, brutisso
author tonyp
date Tue, 10 Jan 2012 18:58:13 -0500
parents 7e37af9d69ef
children 69f26e8e09f9
comparison
equal deleted inserted replaced
4786:1d6185f732aa 4787:2ace1c4ee8da
1 /* 1 /*
2 * Copyright (c) 2001, 2011, Oracle and/or its affiliates. All rights reserved. 2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 * 4 *
5 * This code is free software; you can redistribute it and/or modify it 5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as 6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation. 7 * published by the Free Software Foundation.
68 public: 68 public:
69 // Initialize this queue to contain a null buffer, and be part of the 69 // Initialize this queue to contain a null buffer, and be part of the
70 // given PtrQueueSet. 70 // given PtrQueueSet.
71 PtrQueue(PtrQueueSet* qset, bool perm = false, bool active = false); 71 PtrQueue(PtrQueueSet* qset, bool perm = false, bool active = false);
72 // Release any contained resources. 72 // Release any contained resources.
73 void flush(); 73 virtual void flush();
74 // Calls flush() when destroyed. 74 // Calls flush() when destroyed.
75 ~PtrQueue() { flush(); } 75 ~PtrQueue() { flush(); }
76 76
77 // Associate a lock with a ptr queue. 77 // Associate a lock with a ptr queue.
78 void set_lock(Mutex* lock) { _lock = lock; } 78 void set_lock(Mutex* lock) { _lock = lock; }