1.1 --- a/src/share/vm/utilities/decoder.hpp Wed Sep 04 08:55:08 2013 -0400 1.2 +++ b/src/share/vm/utilities/decoder.hpp Fri Sep 06 08:42:42 2013 -0700 1.3 @@ -28,6 +28,7 @@ 1.4 1.5 #include "memory/allocation.hpp" 1.6 #include "runtime/mutex.hpp" 1.7 +#include "runtime/mutexLocker.hpp" 1.8 1.9 class AbstractDecoder : public CHeapObj<mtInternal> { 1.10 public: 1.11 @@ -124,6 +125,19 @@ 1.12 1.13 protected: 1.14 static Mutex* _shared_decoder_lock; 1.15 + static Mutex* shared_decoder_lock(); 1.16 + 1.17 + friend class DecoderLocker; 1.18 +}; 1.19 + 1.20 +class DecoderLocker : public MutexLockerEx { 1.21 + AbstractDecoder* _decoder; 1.22 + inline bool is_first_error_thread(); 1.23 +public: 1.24 + DecoderLocker(); 1.25 + AbstractDecoder* decoder() { 1.26 + return _decoder; 1.27 + } 1.28 }; 1.29 1.30 #endif // SHARE_VM_UTILITIES_DECODER_HPP