comparison src/share/vm/utilities/decoder.hpp @ 14422:2b8e28fdf503

Merge
author kvn
date Tue, 05 Nov 2013 17:38:04 -0800
parents 38f750491293
children de6a9e811145
comparison
equal deleted inserted replaced
14421:3068270ba476 14422:2b8e28fdf503
26 #ifndef SHARE_VM_UTILITIES_DECODER_HPP 26 #ifndef SHARE_VM_UTILITIES_DECODER_HPP
27 #define SHARE_VM_UTILITIES_DECODER_HPP 27 #define SHARE_VM_UTILITIES_DECODER_HPP
28 28
29 #include "memory/allocation.hpp" 29 #include "memory/allocation.hpp"
30 #include "runtime/mutex.hpp" 30 #include "runtime/mutex.hpp"
31 #include "runtime/mutexLocker.hpp"
31 32
32 class AbstractDecoder : public CHeapObj<mtInternal> { 33 class AbstractDecoder : public CHeapObj<mtInternal> {
33 public: 34 public:
34 // status code for decoding native C frame 35 // status code for decoding native C frame
35 enum decoder_status { 36 enum decoder_status {
122 static AbstractDecoder* _error_handler_decoder; 123 static AbstractDecoder* _error_handler_decoder;
123 static NullDecoder _do_nothing_decoder; 124 static NullDecoder _do_nothing_decoder;
124 125
125 protected: 126 protected:
126 static Mutex* _shared_decoder_lock; 127 static Mutex* _shared_decoder_lock;
128 static Mutex* shared_decoder_lock();
129
130 friend class DecoderLocker;
131 };
132
133 class DecoderLocker : public MutexLockerEx {
134 AbstractDecoder* _decoder;
135 inline bool is_first_error_thread();
136 public:
137 DecoderLocker();
138 AbstractDecoder* decoder() {
139 return _decoder;
140 }
127 }; 141 };
128 142
129 #endif // SHARE_VM_UTILITIES_DECODER_HPP 143 #endif // SHARE_VM_UTILITIES_DECODER_HPP