src/share/vm/runtime/synchronizer.hpp

changeset 2233
fa83ab460c54
parent 1995
bfc89697cccb
child 2314
f95d63e2154a
     1.1 --- a/src/share/vm/runtime/synchronizer.hpp	Mon Oct 18 09:33:24 2010 -0700
     1.2 +++ b/src/share/vm/runtime/synchronizer.hpp	Fri Oct 22 15:59:34 2010 -0400
     1.3 @@ -22,53 +22,6 @@
     1.4   *
     1.5   */
     1.6  
     1.7 -class BasicLock VALUE_OBJ_CLASS_SPEC {
     1.8 -  friend class VMStructs;
     1.9 - private:
    1.10 -  volatile markOop _displaced_header;
    1.11 - public:
    1.12 -  markOop      displaced_header() const               { return _displaced_header; }
    1.13 -  void         set_displaced_header(markOop header)   { _displaced_header = header; }
    1.14 -
    1.15 -  void print_on(outputStream* st) const;
    1.16 -
    1.17 -  // move a basic lock (used during deoptimization
    1.18 -  void move_to(oop obj, BasicLock* dest);
    1.19 -
    1.20 -  static int displaced_header_offset_in_bytes()       { return offset_of(BasicLock, _displaced_header); }
    1.21 -};
    1.22 -
    1.23 -// A BasicObjectLock associates a specific Java object with a BasicLock.
    1.24 -// It is currently embedded in an interpreter frame.
    1.25 -
    1.26 -// Because some machines have alignment restrictions on the control stack,
    1.27 -// the actual space allocated by the interpreter may include padding words
    1.28 -// after the end of the BasicObjectLock.  Also, in order to guarantee
    1.29 -// alignment of the embedded BasicLock objects on such machines, we
    1.30 -// put the embedded BasicLock at the beginning of the struct.
    1.31 -
    1.32 -class BasicObjectLock VALUE_OBJ_CLASS_SPEC {
    1.33 -  friend class VMStructs;
    1.34 - private:
    1.35 -  BasicLock _lock;                                    // the lock, must be double word aligned
    1.36 -  oop       _obj;                                     // object holds the lock;
    1.37 -
    1.38 - public:
    1.39 -  // Manipulation
    1.40 -  oop      obj() const                                { return _obj;  }
    1.41 -  void set_obj(oop obj)                               { _obj = obj; }
    1.42 -  BasicLock* lock()                                   { return &_lock; }
    1.43 -
    1.44 -  // Note: Use frame::interpreter_frame_monitor_size() for the size of BasicObjectLocks
    1.45 -  //       in interpreter activation frames since it includes machine-specific padding.
    1.46 -  static int size()                                   { return sizeof(BasicObjectLock)/wordSize; }
    1.47 -
    1.48 -  // GC support
    1.49 -  void oops_do(OopClosure* f) { f->do_oop(&_obj); }
    1.50 -
    1.51 -  static int obj_offset_in_bytes()                    { return offset_of(BasicObjectLock, _obj);  }
    1.52 -  static int lock_offset_in_bytes()                   { return offset_of(BasicObjectLock, _lock); }
    1.53 -};
    1.54  
    1.55  class ObjectMonitor;
    1.56  
    1.57 @@ -163,6 +116,8 @@
    1.58    static void verify() PRODUCT_RETURN;
    1.59    static int  verify_objmon_isinpool(ObjectMonitor *addr) PRODUCT_RETURN0;
    1.60  
    1.61 +  static void RegisterSpinCallback (int (*)(intptr_t, int), intptr_t) ;
    1.62 +
    1.63   private:
    1.64    enum { _BLOCKSIZE = 128 };
    1.65    static ObjectMonitor* gBlockList;
    1.66 @@ -170,30 +125,6 @@
    1.67    static ObjectMonitor * volatile gOmInUseList; // for moribund thread, so monitors they inflated still get scanned
    1.68    static int gOmInUseCount;
    1.69  
    1.70 - public:
    1.71 -  static void Initialize () ;
    1.72 -  static PerfCounter * _sync_ContendedLockAttempts ;
    1.73 -  static PerfCounter * _sync_FutileWakeups ;
    1.74 -  static PerfCounter * _sync_Parks ;
    1.75 -  static PerfCounter * _sync_EmptyNotifications ;
    1.76 -  static PerfCounter * _sync_Notifications ;
    1.77 -  static PerfCounter * _sync_SlowEnter ;
    1.78 -  static PerfCounter * _sync_SlowExit ;
    1.79 -  static PerfCounter * _sync_SlowNotify ;
    1.80 -  static PerfCounter * _sync_SlowNotifyAll ;
    1.81 -  static PerfCounter * _sync_FailedSpins ;
    1.82 -  static PerfCounter * _sync_SuccessfulSpins ;
    1.83 -  static PerfCounter * _sync_PrivateA ;
    1.84 -  static PerfCounter * _sync_PrivateB ;
    1.85 -  static PerfCounter * _sync_MonInCirculation ;
    1.86 -  static PerfCounter * _sync_MonScavenged ;
    1.87 -  static PerfCounter * _sync_Inflations ;
    1.88 -  static PerfCounter * _sync_Deflations ;
    1.89 -  static PerfLongVariable * _sync_MonExtant ;
    1.90 -
    1.91 - public:
    1.92 -  static void RegisterSpinCallback (int (*)(intptr_t, int), intptr_t) ;
    1.93 -
    1.94  };
    1.95  
    1.96  // ObjectLocker enforced balanced locking and can never thrown an

mercurial