393 jlong _allocated_bytes; // Cumulative number of bytes allocated on
394 // the Java heap
395 ThreadHeapSampler _heap_sampler; // For use when sampling the memory.
396
397 ThreadStatisticalInfo _statistical_info; // Statistics about the thread
398
399 JFR_ONLY(DEFINE_THREAD_LOCAL_FIELD_JFR;) // Thread-local data for jfr
400
401 int _vm_operation_started_count; // VM_Operation support
402 int _vm_operation_completed_count; // VM_Operation support
403
404 ObjectMonitor* _current_pending_monitor; // ObjectMonitor this thread
405 // is waiting to lock
406 bool _current_pending_monitor_is_from_java; // locking is from Java code
407
408 // ObjectMonitor on which this thread called Object.wait()
409 ObjectMonitor* _current_waiting_monitor;
410
411 // Per-thread ObjectMonitor lists:
412 public:
413 ObjectMonitor* om_free_list; // SLL of free ObjectMonitors
414 int om_free_count; // # on om_free_list
415 int om_free_provision; // # to try to allocate next
416 ObjectMonitor* om_in_use_list; // SLL of in-use ObjectMonitors
417 int om_in_use_count; // # on om_in_use_list
418 volatile bool om_request_deflation; // request deflation of idle monitors
419
420 #ifdef ASSERT
421 private:
422 volatile uint64_t _visited_for_critical_count;
423
424 public:
425 void set_visited_for_critical_count(uint64_t safepoint_id) {
426 assert(_visited_for_critical_count == 0, "Must be reset before set");
427 assert((safepoint_id & 0x1) == 1, "Must be odd");
428 _visited_for_critical_count = safepoint_id;
429 }
430 void reset_visited_for_critical_count(uint64_t safepoint_id) {
431 assert(_visited_for_critical_count == safepoint_id, "Was not visited");
432 _visited_for_critical_count = 0;
433 }
434 bool was_visited_for_critical_count(uint64_t safepoint_id) const {
435 return _visited_for_critical_count == safepoint_id;
436 }
437 #endif
438
|
393 jlong _allocated_bytes; // Cumulative number of bytes allocated on
394 // the Java heap
395 ThreadHeapSampler _heap_sampler; // For use when sampling the memory.
396
397 ThreadStatisticalInfo _statistical_info; // Statistics about the thread
398
399 JFR_ONLY(DEFINE_THREAD_LOCAL_FIELD_JFR;) // Thread-local data for jfr
400
401 int _vm_operation_started_count; // VM_Operation support
402 int _vm_operation_completed_count; // VM_Operation support
403
404 ObjectMonitor* _current_pending_monitor; // ObjectMonitor this thread
405 // is waiting to lock
406 bool _current_pending_monitor_is_from_java; // locking is from Java code
407
408 // ObjectMonitor on which this thread called Object.wait()
409 ObjectMonitor* _current_waiting_monitor;
410
411 // Per-thread ObjectMonitor lists:
412 public:
413 ObjectMonitor* volatile om_free_list; // SLL of free ObjectMonitors
414 volatile int om_free_count; // # on om_free_list
415 int om_free_provision; // # to try to allocate next
416 ObjectMonitor* volatile om_in_use_list; // SLL of in-use ObjectMonitors
417 volatile int om_in_use_count; // # on om_in_use_list
418
419 #ifdef ASSERT
420 private:
421 volatile uint64_t _visited_for_critical_count;
422
423 public:
424 void set_visited_for_critical_count(uint64_t safepoint_id) {
425 assert(_visited_for_critical_count == 0, "Must be reset before set");
426 assert((safepoint_id & 0x1) == 1, "Must be odd");
427 _visited_for_critical_count = safepoint_id;
428 }
429 void reset_visited_for_critical_count(uint64_t safepoint_id) {
430 assert(_visited_for_critical_count == safepoint_id, "Was not visited");
431 _visited_for_critical_count = 0;
432 }
433 bool was_visited_for_critical_count(uint64_t safepoint_id) const {
434 return _visited_for_critical_count == safepoint_id;
435 }
436 #endif
437
|