Mercurial > hg > truffle
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) { |