mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 14:54:52 +02:00
7198529: NPG: assert with NMT code in Thread destructor
Thread stack's base address can be NULL if it is not started or exited before recording the base Reviewed-by: kvn, fparain
This commit is contained in:
parent
00c30b04f4
commit
119c20297b
1 changed files with 8 additions and 2 deletions
|
@ -328,8 +328,14 @@ Thread::~Thread() {
|
||||||
// Reclaim the objectmonitors from the omFreeList of the moribund thread.
|
// Reclaim the objectmonitors from the omFreeList of the moribund thread.
|
||||||
ObjectSynchronizer::omFlush (this) ;
|
ObjectSynchronizer::omFlush (this) ;
|
||||||
|
|
||||||
address low_stack_addr = stack_base() - stack_size();
|
// stack_base can be NULL if the thread is never started or exited before
|
||||||
MemTracker::release_thread_stack(low_stack_addr, stack_size(), this);
|
// record_stack_base_and_size called. Although, we would like to ensure
|
||||||
|
// that all started threads do call record_stack_base_and_size(), there is
|
||||||
|
// not proper way to enforce that.
|
||||||
|
if (_stack_base != NULL) {
|
||||||
|
address low_stack_addr = stack_base() - stack_size();
|
||||||
|
MemTracker::release_thread_stack(low_stack_addr, stack_size(), this);
|
||||||
|
}
|
||||||
|
|
||||||
// deallocate data structures
|
// deallocate data structures
|
||||||
delete resource_area();
|
delete resource_area();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue