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