comparison src/share/vm/runtime/thread.hpp @ 12880:469216acdb28

8023014: CodeSweeperSweepNoFlushTest.java fails with HS crash Summary: Ensure ensure correct initialization of compiler runtime Reviewed-by: kvn, twisti
author anoll
date Thu, 10 Oct 2013 15:44:12 +0200
parents 8b80b262e501
children 096c224171c4 febc6428bc79 63a4eb8bcd23 2b8e28fdf503
comparison
equal deleted inserted replaced
12876:8b80b262e501 12880:469216acdb28
921 volatile oop _exception_oop; // Exception thrown in compiled code 921 volatile oop _exception_oop; // Exception thrown in compiled code
922 volatile address _exception_pc; // PC where exception happened 922 volatile address _exception_pc; // PC where exception happened
923 volatile address _exception_handler_pc; // PC for handler of exception 923 volatile address _exception_handler_pc; // PC for handler of exception
924 volatile int _is_method_handle_return; // true (== 1) if the current exception PC is a MethodHandle call site. 924 volatile int _is_method_handle_return; // true (== 1) if the current exception PC is a MethodHandle call site.
925 925
926 // support for compilation
927 bool _is_compiling; // is true if a compilation is active inthis thread (one compilation per thread possible)
928
929 // support for JNI critical regions 926 // support for JNI critical regions
930 jint _jni_active_critical; // count of entries into JNI critical region 927 jint _jni_active_critical; // count of entries into JNI critical region
931 928
932 // For deadlock detection. 929 // For deadlock detection.
933 int _depth_first_number; 930 int _depth_first_number;
1002 999
1003 void cleanup_failed_attach_current_thread(); 1000 void cleanup_failed_attach_current_thread();
1004 1001
1005 // Testers 1002 // Testers
1006 virtual bool is_Java_thread() const { return true; } 1003 virtual bool is_Java_thread() const { return true; }
1007
1008 // compilation
1009 void set_is_compiling(bool f) { _is_compiling = f; }
1010 bool is_compiling() const { return _is_compiling; }
1011 1004
1012 // Thread chain operations 1005 // Thread chain operations
1013 JavaThread* next() const { return _next; } 1006 JavaThread* next() const { return _next; }
1014 void set_next(JavaThread* p) { _next = p; } 1007 void set_next(JavaThread* p) { _next = p; }
1015 1008
1814 class CompilerThread : public JavaThread { 1807 class CompilerThread : public JavaThread {
1815 friend class VMStructs; 1808 friend class VMStructs;
1816 private: 1809 private:
1817 CompilerCounters* _counters; 1810 CompilerCounters* _counters;
1818 1811
1819 ciEnv* _env; 1812 ciEnv* _env;
1820 CompileLog* _log; 1813 CompileLog* _log;
1821 CompileTask* _task; 1814 CompileTask* _task;
1822 CompileQueue* _queue; 1815 CompileQueue* _queue;
1823 BufferBlob* _buffer_blob; 1816 BufferBlob* _buffer_blob;
1824 1817
1825 nmethod* _scanned_nmethod; // nmethod being scanned by the sweeper 1818 nmethod* _scanned_nmethod; // nmethod being scanned by the sweeper
1819 AbstractCompiler* _compiler;
1826 1820
1827 public: 1821 public:
1828 1822
1829 static CompilerThread* current(); 1823 static CompilerThread* current();
1830 1824
1832 1826
1833 bool is_Compiler_thread() const { return true; } 1827 bool is_Compiler_thread() const { return true; }
1834 // Hide this compiler thread from external view. 1828 // Hide this compiler thread from external view.
1835 bool is_hidden_from_external_view() const { return true; } 1829 bool is_hidden_from_external_view() const { return true; }
1836 1830
1837 CompileQueue* queue() { return _queue; } 1831 void set_compiler(AbstractCompiler* c) { _compiler = c; }
1838 CompilerCounters* counters() { return _counters; } 1832 AbstractCompiler* compiler() const { return _compiler; }
1833
1834 CompileQueue* queue() const { return _queue; }
1835 CompilerCounters* counters() const { return _counters; }
1839 1836
1840 // Get/set the thread's compilation environment. 1837 // Get/set the thread's compilation environment.
1841 ciEnv* env() { return _env; } 1838 ciEnv* env() { return _env; }
1842 void set_env(ciEnv* env) { _env = env; } 1839 void set_env(ciEnv* env) { _env = env; }
1843 1840
1844 BufferBlob* get_buffer_blob() { return _buffer_blob; } 1841 BufferBlob* get_buffer_blob() const { return _buffer_blob; }
1845 void set_buffer_blob(BufferBlob* b) { _buffer_blob = b; }; 1842 void set_buffer_blob(BufferBlob* b) { _buffer_blob = b; };
1846 1843
1847 // Get/set the thread's logging information 1844 // Get/set the thread's logging information
1848 CompileLog* log() { return _log; } 1845 CompileLog* log() { return _log; }
1849 void init_log(CompileLog* log) { 1846 void init_log(CompileLog* log) {