hotspot/src/share/vm/runtime/thread.hpp
changeset 27247 99db666dbe8e
parent 26834 41332d860d6a
child 27429 4ccd0992d680
equal deleted inserted replaced
27155:9059987242ca 27247:99db666dbe8e
    40 #include "runtime/safepoint.hpp"
    40 #include "runtime/safepoint.hpp"
    41 #include "runtime/stubRoutines.hpp"
    41 #include "runtime/stubRoutines.hpp"
    42 #include "runtime/threadLocalStorage.hpp"
    42 #include "runtime/threadLocalStorage.hpp"
    43 #include "runtime/thread_ext.hpp"
    43 #include "runtime/thread_ext.hpp"
    44 #include "runtime/unhandledOops.hpp"
    44 #include "runtime/unhandledOops.hpp"
    45 #include "utilities/macros.hpp"
       
    46 
       
    47 #include "trace/traceBackend.hpp"
    45 #include "trace/traceBackend.hpp"
    48 #include "trace/traceMacros.hpp"
    46 #include "trace/traceMacros.hpp"
    49 #include "utilities/exceptions.hpp"
    47 #include "utilities/exceptions.hpp"
       
    48 #include "utilities/macros.hpp"
    50 #include "utilities/top.hpp"
    49 #include "utilities/top.hpp"
    51 #if INCLUDE_ALL_GCS
    50 #if INCLUDE_ALL_GCS
    52 #include "gc_implementation/g1/dirtyCardQueue.hpp"
    51 #include "gc_implementation/g1/dirtyCardQueue.hpp"
    53 #include "gc_implementation/g1/satbQueue.hpp"
    52 #include "gc_implementation/g1/satbQueue.hpp"
    54 #endif // INCLUDE_ALL_GCS
    53 #endif // INCLUDE_ALL_GCS
    80 class jvmtiDeferredLocalVariableSet;
    79 class jvmtiDeferredLocalVariableSet;
    81 
    80 
    82 class GCTaskQueue;
    81 class GCTaskQueue;
    83 class ThreadClosure;
    82 class ThreadClosure;
    84 class IdealGraphPrinter;
    83 class IdealGraphPrinter;
       
    84 
       
    85 class Metadata;
       
    86 template <class T, MEMFLAGS F> class ChunkedList;
       
    87 typedef ChunkedList<Metadata*, mtInternal> MetadataOnStackBuffer;
    85 
    88 
    86 DEBUG_ONLY(class ResourceMark;)
    89 DEBUG_ONLY(class ResourceMark;)
    87 
    90 
    88 class WorkerThread;
    91 class WorkerThread;
    89 
    92 
   253 
   256 
   254   ThreadLocalAllocBuffer _tlab;                 // Thread-local eden
   257   ThreadLocalAllocBuffer _tlab;                 // Thread-local eden
   255   jlong _allocated_bytes;                       // Cumulative number of bytes allocated on
   258   jlong _allocated_bytes;                       // Cumulative number of bytes allocated on
   256                                                 // the Java heap
   259                                                 // the Java heap
   257 
   260 
       
   261   // Thread-local buffer used by MetadataOnStackMark.
       
   262   MetadataOnStackBuffer* _metadata_on_stack_buffer;
       
   263 
   258   TRACE_DATA _trace_data;                       // Thread-local data for tracing
   264   TRACE_DATA _trace_data;                       // Thread-local data for tracing
   259 
   265 
   260   ThreadExt _ext;
   266   ThreadExt _ext;
   261 
   267 
   262   int   _vm_operation_started_count;            // VM_Operation support
   268   int   _vm_operation_started_count;            // VM_Operation support
   488 
   494 
   489   // Sets this thread as starting thread. Returns failure if thread
   495   // Sets this thread as starting thread. Returns failure if thread
   490   // creation fails due to lack of memory, too many threads etc.
   496   // creation fails due to lack of memory, too many threads etc.
   491   bool set_as_starting_thread();
   497   bool set_as_starting_thread();
   492 
   498 
   493  protected:
   499   void set_metadata_on_stack_buffer(MetadataOnStackBuffer* buffer) { _metadata_on_stack_buffer = buffer; }
       
   500   MetadataOnStackBuffer* metadata_on_stack_buffer() const          { return _metadata_on_stack_buffer; }
       
   501 
       
   502 protected:
   494   // OS data associated with the thread
   503   // OS data associated with the thread
   495   OSThread* _osthread;  // Platform-specific thread information
   504   OSThread* _osthread;  // Platform-specific thread information
   496 
   505 
   497   // Thread local resource area for temporary allocation within the VM
   506   // Thread local resource area for temporary allocation within the VM
   498   ResourceArea* _resource_area;
   507   ResourceArea* _resource_area;