src/hotspot/share/runtime/basicLock.hpp
changeset 57777 90ead0febf56
parent 53244 9807daeb47c4
child 57811 947252a54b98
equal deleted inserted replaced
57774:21dccfac0ec5 57777:90ead0febf56
    24 
    24 
    25 #ifndef SHARE_RUNTIME_BASICLOCK_HPP
    25 #ifndef SHARE_RUNTIME_BASICLOCK_HPP
    26 #define SHARE_RUNTIME_BASICLOCK_HPP
    26 #define SHARE_RUNTIME_BASICLOCK_HPP
    27 
    27 
    28 #include "oops/markOop.hpp"
    28 #include "oops/markOop.hpp"
       
    29 #include "runtime/atomic.hpp"
    29 #include "runtime/handles.hpp"
    30 #include "runtime/handles.hpp"
    30 
    31 
    31 class BasicLock {
    32 class BasicLock {
    32   friend class VMStructs;
    33   friend class VMStructs;
    33   friend class JVMCIVMStructs;
    34   friend class JVMCIVMStructs;
    34  private:
    35  private:
    35   volatile markOop _displaced_header;
    36   volatile markWord _displaced_header;
    36  public:
    37  public:
    37   markOop      displaced_header() const               { return _displaced_header; }
    38   markWord displaced_header() const {
    38   void         set_displaced_header(markOop header)   { _displaced_header = header; }
    39     return Atomic::load(&_displaced_header);
       
    40   }
       
    41 
       
    42   void set_displaced_header(markWord header) {
       
    43     Atomic::store(header, &_displaced_header);
       
    44   }
    39 
    45 
    40   void print_on(outputStream* st) const;
    46   void print_on(outputStream* st) const;
    41 
    47 
    42   // move a basic lock (used during deoptimization
    48   // move a basic lock (used during deoptimization
    43   void move_to(oop obj, BasicLock* dest);
    49   void move_to(oop obj, BasicLock* dest);