comparison src/share/vm/runtime/thread.cpp @ 10135:5a9fa2ba85f0

8012907: anti-delta fix for 8010992 Summary: anti-delta fix for 8010992 until 8012902 can be fixed Reviewed-by: acorn, minqi, rdurbin
author dcubed
date Sun, 21 Apr 2013 20:41:04 -0700
parents 6f817ce50129
children caac22686b17
comparison
equal deleted inserted replaced
10130:6f817ce50129 10135:5a9fa2ba85f0
226 226
227 // This initial value ==> never claimed. 227 // This initial value ==> never claimed.
228 _oops_do_parity = 0; 228 _oops_do_parity = 0;
229 229
230 // the handle mark links itself to last_handle_mark 230 // the handle mark links itself to last_handle_mark
231 HandleMark *hm = NEW_C_HEAP_OBJ(HandleMark, mtThread); 231 new HandleMark(this);
232 hm->initialize(this); 232
233 // plain initialization 233 // plain initialization
234 debug_only(_owned_locks = NULL;) 234 debug_only(_owned_locks = NULL;)
235 debug_only(_allow_allocation_count = 0;) 235 debug_only(_allow_allocation_count = 0;)
236 NOT_PRODUCT(_allow_safepoint_count = 0;) 236 NOT_PRODUCT(_allow_safepoint_count = 0;)
237 NOT_PRODUCT(_skip_gcalot = false;) 237 NOT_PRODUCT(_skip_gcalot = false;)
350 // deallocate data structures 350 // deallocate data structures
351 delete resource_area(); 351 delete resource_area();
352 // since the handle marks are using the handle area, we have to deallocated the root 352 // since the handle marks are using the handle area, we have to deallocated the root
353 // handle mark before deallocating the thread's handle area, 353 // handle mark before deallocating the thread's handle area,
354 assert(last_handle_mark() != NULL, "check we have an element"); 354 assert(last_handle_mark() != NULL, "check we have an element");
355 FREE_C_HEAP_OBJECT(HandleMark, last_handle_mark(), mtThread); 355 delete last_handle_mark();
356 set_last_handle_mark(NULL); 356 assert(last_handle_mark() == NULL, "check we have reached the end");
357 357
358 // It's possible we can encounter a null _ParkEvent, etc., in stillborn threads. 358 // It's possible we can encounter a null _ParkEvent, etc., in stillborn threads.
359 // We NULL out the fields for good hygiene. 359 // We NULL out the fields for good hygiene.
360 ParkEvent::Release (_ParkEvent) ; _ParkEvent = NULL ; 360 ParkEvent::Release (_ParkEvent) ; _ParkEvent = NULL ;
361 ParkEvent::Release (_SleepEvent) ; _SleepEvent = NULL ; 361 ParkEvent::Release (_SleepEvent) ; _SleepEvent = NULL ;