package ALBasicServer.ALThread;
public class ALMutexInfo
{
/** 对应锁的对象 */
private ALMutex _m_iCosObject;
/** 加锁次数 */
private int _m_iLockTime;
public ALMutexInfo(ALMutex _cosObj)
{
_m_iCosObject = _cosObj;
_m_iLockTime = 0;
}
/*************
* 获取锁等级
* @return
*/
public int getMutexPriority()
{
return _m_iCosObject.getPriority();
}
/*************
* 获取锁次数
* @return
*/
public int getLockTime()
{
return _m_iLockTime;
}
/**************
* 增加锁次数
*/
public void addLockTime()
{
_m_iLockTime++;
}
/**************
* 减少锁次数
*/
public void reduceLockTime()
{
_m_iLockTime--;
}
/***************
* 根据记录释放所有锁
*/
public void releaseAllLock()
{
while(_m_iLockTime > 0)
{
if(null != _m_iCosObject)
_m_iCosObject.unlock();
reduceLockTime();
}
}
/**************
* 获取加锁对象
* @return
*/
public ALMutex getObj()
{
return _m_iCosObject;
}
}