16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp"
27 #ifdef TARGET_OS_FAMILY_linux
28 # include "thread_linux.inline.hpp"
29 #endif
30 #ifdef TARGET_OS_FAMILY_solaris
31 # include "thread_solaris.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_windows
34 # include "thread_windows.inline.hpp"
35 #endif
36
37 #ifndef PRODUCT
38 Mutex* FreeBlockDictionary::par_lock() const {
39 return _lock;
40 }
41
42 void FreeBlockDictionary::set_par_lock(Mutex* lock) {
43 _lock = lock;
44 }
45
46 void FreeBlockDictionary::verify_par_locked() const {
47 #ifdef ASSERT
48 if (ParallelGCThreads > 0) {
49 Thread* myThread = Thread::current();
50 if (myThread->is_GC_task_thread()) {
51 assert(par_lock() != NULL, "Should be using locking?");
52 assert_lock_strong(par_lock());
53 }
54 }
55 #endif // ASSERT
|
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc_implementation/concurrentMarkSweep/freeBlockDictionary.hpp"
27 #ifdef TARGET_OS_FAMILY_linux
28 # include "thread_linux.inline.hpp"
29 #endif
30 #ifdef TARGET_OS_FAMILY_solaris
31 # include "thread_solaris.inline.hpp"
32 #endif
33 #ifdef TARGET_OS_FAMILY_windows
34 # include "thread_windows.inline.hpp"
35 #endif
36 #ifdef TARGET_OS_FAMILY_bsd
37 # include "thread_bsd.inline.hpp"
38 #endif
39
40 #ifndef PRODUCT
41 Mutex* FreeBlockDictionary::par_lock() const {
42 return _lock;
43 }
44
45 void FreeBlockDictionary::set_par_lock(Mutex* lock) {
46 _lock = lock;
47 }
48
49 void FreeBlockDictionary::verify_par_locked() const {
50 #ifdef ASSERT
51 if (ParallelGCThreads > 0) {
52 Thread* myThread = Thread::current();
53 if (myThread->is_GC_task_thread()) {
54 assert(par_lock() != NULL, "Should be using locking?");
55 assert_lock_strong(par_lock());
56 }
57 }
58 #endif // ASSERT
|