本文整理汇总了Java中com.sun.corba.se.impl.orbutil.concurrent.ReentrantMutex类的典型用法代码示例。如果您正苦于以下问题:Java ReentrantMutex类的具体用法?Java ReentrantMutex怎么用?Java ReentrantMutex使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
ReentrantMutex类属于com.sun.corba.se.impl.orbutil.concurrent包,在下文中一共展示了ReentrantMutex类的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: POAImpl
import com.sun.corba.se.impl.orbutil.concurrent.ReentrantMutex; //导入依赖的package包/类
private POAImpl( String name, POAImpl parent, ORB orb, int initialState )
{
super( orb ) ;
debug = orb.poaDebugFlag ;
if (debug) {
ORBUtility.dprint( this, "Creating POA with name=" + name +
" parent=" + parent ) ;
}
this.state = initialState ;
this.name = name ;
this.parent = parent;
children = new HashMap();
activator = null ;
// This was done in initialize, but I moved it here
// to get better searchability when tracing.
uniquePOAId = getPOAFactory( orb ).newPOAId() ;
if (parent == null) {
// This is the root POA, which counts as 1 level
numLevels = 1 ;
} else {
// My level is one more than that of my parent
numLevels = parent.numLevels + 1 ;
parent.children.put(name, this);
}
// Get an array of all of the POA names in order to
// create the poaid.
String[] names = new String[ numLevels ] ;
POAImpl poaImpl = this ;
int ctr = numLevels - 1 ;
while (poaImpl != null) {
names[ctr--] = poaImpl.name ;
poaImpl = poaImpl.parent ;
}
poaId = new ObjectAdapterIdArray( names ) ;
invocationCount = 0;
poaMutex = new ReentrantMutex( orb.poaConcurrencyDebugFlag ) ;
adapterActivatorCV = new CondVar( poaMutex,
orb.poaConcurrencyDebugFlag ) ;
invokeCV = new CondVar( poaMutex,
orb.poaConcurrencyDebugFlag ) ;
beingDestroyedCV = new CondVar( poaMutex,
orb.poaConcurrencyDebugFlag ) ;
isDestroying = new ThreadLocal () {
protected java.lang.Object initialValue() {
return Boolean.FALSE;
}
};
}