org.jikesrvm.scheduler.nativethreads
Class NativeLock

java.lang.Object
  extended by org.jikesrvm.scheduler.Lock
      extended by org.jikesrvm.scheduler.nativethreads.NativeLock
All Implemented Interfaces:
Constants, HeapLayoutConstants, ThinLockConstants, TIBLayoutConstants, SizeConstants

public class NativeLock
extends Lock


Field Summary
 
Fields inherited from class org.jikesrvm.scheduler.Lock
active, deflations, index, INITIAL_CHUNKS, LOCK_CHUNK_MASK, LOCK_CHUNK_SIZE, LOCK_SPINE_SIZE, lockedObject, lockOperations, LOG_LOCK_CHUNK_SIZE, MAX_LOCKS, mutex, ownerId, recursionCount, STATS, unlockOperations
 
Fields inherited from interface org.jikesrvm.Constants
NOT_REACHED, REFLECTION_FPRS_BITS, REFLECTION_FPRS_MASK, REFLECTION_GPRS_BITS, REFLECTION_GPRS_MASK
 
Fields inherited from interface org.jikesrvm.objectmodel.ThinLockConstants
NUM_BITS_RC, NUM_BITS_TID, TL_FAT_LOCK_MASK, TL_LOCK_COUNT_MASK, TL_LOCK_COUNT_SHIFT, TL_LOCK_COUNT_UNIT, TL_LOCK_ID_MASK, TL_LOCK_ID_SHIFT, TL_THREAD_ID_MASK, TL_THREAD_ID_SHIFT, TL_UNLOCK_MASK
 
Fields inherited from interface org.jikesrvm.SizeConstants
BITS_IN_ADDRESS, BITS_IN_BOOLEAN, BITS_IN_BYTE, BITS_IN_CHAR, BITS_IN_DOUBLE, BITS_IN_FLOAT, BITS_IN_INT, BITS_IN_LONG, BITS_IN_PAGE, BITS_IN_SHORT, BITS_IN_WORD, BYTES_IN_ADDRESS, BYTES_IN_BOOLEAN, BYTES_IN_BYTE, BYTES_IN_CHAR, BYTES_IN_DOUBLE, BYTES_IN_FLOAT, BYTES_IN_INT, BYTES_IN_LONG, BYTES_IN_PAGE, BYTES_IN_SHORT, BYTES_IN_WORD, LOG_BITS_IN_ADDRESS, LOG_BITS_IN_BOOLEAN, LOG_BITS_IN_BYTE, LOG_BITS_IN_CHAR, LOG_BITS_IN_DOUBLE, LOG_BITS_IN_FLOAT, LOG_BITS_IN_INT, LOG_BITS_IN_LONG, LOG_BITS_IN_PAGE, LOG_BITS_IN_SHORT, LOG_BITS_IN_WORD, LOG_BYTES_IN_ADDRESS, LOG_BYTES_IN_BOOLEAN, LOG_BYTES_IN_BYTE, LOG_BYTES_IN_CHAR, LOG_BYTES_IN_DOUBLE, LOG_BYTES_IN_FLOAT, LOG_BYTES_IN_INT, LOG_BYTES_IN_LONG, LOG_BYTES_IN_PAGE, LOG_BYTES_IN_SHORT, LOG_BYTES_IN_WORD
 
Fields inherited from interface org.jikesrvm.objectmodel.TIBLayoutConstants
IMT_METHOD_SLOTS, NEEDS_DYNAMIC_LINK, TIB_ARRAY_ELEMENT_TIB_INDEX, TIB_DOES_IMPLEMENT_INDEX, TIB_FIRST_SPECIALIZED_METHOD_INDEX, TIB_FIRST_VIRTUAL_METHOD_INDEX, TIB_INTERFACE_DISPATCH_TABLE_INDEX, TIB_SUPERCLASS_IDS_INDEX, TIB_TYPE_INDEX
 
Fields inherited from interface org.jikesrvm.HeapLayoutConstants
BAD_MAP_COMPRESSION, BOOT_IMAGE_CODE_END, BOOT_IMAGE_CODE_SIZE, BOOT_IMAGE_CODE_START, BOOT_IMAGE_DATA_END, BOOT_IMAGE_DATA_SIZE, BOOT_IMAGE_DATA_START, BOOT_IMAGE_END, BOOT_IMAGE_RMAP_END, BOOT_IMAGE_RMAP_START, MAX_BOOT_IMAGE_RMAP_SIZE, MAXIMUM_MAPPABLE
 
Constructor Summary
NativeLock()
           
 
Method Summary
 void dumpBlockedThreads()
          Dump threads blocked trying to get this lock
 void dumpWaitingThreads()
          Dump threads waiting to be notified on this lock
 boolean isBlocked(RVMThread t)
          Is this lock blocking thread t?
 boolean isWaiting(RVMThread t)
          Is this thread t waiting on this lock?
 boolean lockHeavy(Object o)
          Acquires this heavy-weight lock on the indicated object.
 void unlockHeavy(Object o)
          Releases this heavy-weight lock on the indicated object.
 
Methods inherited from class org.jikesrvm.scheduler.Lock
addLock, boot, countLocksHeldByThread, dumpLocks, free, getLock, getLockedObject, getOwnerId, getRecursionCount, getThreadState, init, numLocks, returnLock, setLockedObject, setOwnerId, setRecursionCount
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

NativeLock

public NativeLock()
Method Detail

lockHeavy

public boolean lockHeavy(Object o)
Description copied from class: Lock
Acquires this heavy-weight lock on the indicated object.

Specified by:
lockHeavy in class Lock
Parameters:
o - the object to be locked
Returns:
true, if the lock succeeds; false, otherwise

unlockHeavy

public void unlockHeavy(Object o)
Description copied from class: Lock
Releases this heavy-weight lock on the indicated object.

Specified by:
unlockHeavy in class Lock
Parameters:
o - the object to be unlocked

isBlocked

public boolean isBlocked(RVMThread t)
Description copied from class: Lock
Is this lock blocking thread t?

Specified by:
isBlocked in class Lock

isWaiting

public boolean isWaiting(RVMThread t)
Description copied from class: Lock
Is this thread t waiting on this lock?

Specified by:
isWaiting in class Lock

dumpWaitingThreads

public void dumpWaitingThreads()
Description copied from class: Lock
Dump threads waiting to be notified on this lock

Specified by:
dumpWaitingThreads in class Lock

dumpBlockedThreads

public void dumpBlockedThreads()
Description copied from class: Lock
Dump threads blocked trying to get this lock

Specified by:
dumpBlockedThreads in class Lock