Mercurial > hg > truffle
comparison src/share/vm/memory/metaspace.cpp @ 8786:19f9fabd94cc
Merge
author | stefank |
---|---|
date | Mon, 18 Mar 2013 09:34:58 +0100 |
parents | 15401203db6b 79af1312fc2c |
children | 7f0cb32dd233 |
comparison
equal
deleted
inserted
replaced
8749:7ae04e71af90 | 8786:19f9fabd94cc |
---|---|
1306 if (PrintGCDetails && Verbose) { | 1306 if (PrintGCDetails && Verbose) { |
1307 size_t new_capacity_until_GC = MetaspaceGC::capacity_until_GC_in_bytes(); | 1307 size_t new_capacity_until_GC = MetaspaceGC::capacity_until_GC_in_bytes(); |
1308 gclog_or_tty->print_cr(" metaspace HWM: %.1fK", new_capacity_until_GC / (double) K); | 1308 gclog_or_tty->print_cr(" metaspace HWM: %.1fK", new_capacity_until_GC / (double) K); |
1309 } | 1309 } |
1310 } | 1310 } |
1311 assert(vsl->used_bytes_sum() == used_after_gc && | 1311 assert(used_after_gc <= vsl->capacity_bytes_sum(), |
1312 used_after_gc <= vsl->capacity_bytes_sum(), | |
1313 "sanity check"); | 1312 "sanity check"); |
1314 | 1313 |
1315 } | 1314 } |
1316 | 1315 |
1317 // Metadebug methods | 1316 // Metadebug methods |
1967 gclog_or_tty->print_cr("SpaceManager(): " PTR_FORMAT, this); | 1966 gclog_or_tty->print_cr("SpaceManager(): " PTR_FORMAT, this); |
1968 } | 1967 } |
1969 } | 1968 } |
1970 | 1969 |
1971 SpaceManager::~SpaceManager() { | 1970 SpaceManager::~SpaceManager() { |
1971 // This call this->_lock which can't be done while holding expand_lock() | |
1972 const size_t in_use_before = sum_capacity_in_chunks_in_use(); | |
1973 | |
1972 MutexLockerEx fcl(SpaceManager::expand_lock(), | 1974 MutexLockerEx fcl(SpaceManager::expand_lock(), |
1973 Mutex::_no_safepoint_check_flag); | 1975 Mutex::_no_safepoint_check_flag); |
1974 | 1976 |
1975 ChunkManager* chunk_manager = vs_list()->chunk_manager(); | 1977 ChunkManager* chunk_manager = vs_list()->chunk_manager(); |
1976 | 1978 |
1984 // Mangle freed memory. | 1986 // Mangle freed memory. |
1985 NOT_PRODUCT(mangle_freed_chunks();) | 1987 NOT_PRODUCT(mangle_freed_chunks();) |
1986 | 1988 |
1987 // Have to update before the chunks_in_use lists are emptied | 1989 // Have to update before the chunks_in_use lists are emptied |
1988 // below. | 1990 // below. |
1989 chunk_manager->inc_free_chunks_total(sum_capacity_in_chunks_in_use(), | 1991 chunk_manager->inc_free_chunks_total(in_use_before, |
1990 sum_count_in_chunks_in_use()); | 1992 sum_count_in_chunks_in_use()); |
1991 | 1993 |
1992 // Add all the chunks in use by this space manager | 1994 // Add all the chunks in use by this space manager |
1993 // to the global list of free chunks. | 1995 // to the global list of free chunks. |
1994 | 1996 |