📄 jco$poolmanager$timeoutchecker.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3)
// Source File Name: JCO.java
package com.sap.mw.jco;
import com.sap.mw.jco.util.ObjectList;
// Referenced classes of package com.sap.mw.jco:
// JCO
protected static class JCO$PoolManager$TimeoutChecker
implements Runnable
{
public final void startCheckerFor(JCO$Pool pool)
{
synchronized(pools)
{
if(!pools.contains(pool) && pool.getTimeoutCheckPeriod() > 0L)
{
pool.next_timeout_check = System.currentTimeMillis() + pool.timeout_check_period;
pools.add(pool);
pools.notifyAll();
}
}
}
public final void stopCheckerFor(JCO$Pool pool)
{
synchronized(pools)
{
if(pools.contains(pool))
pools.remove(pool);
}
}
public final void run()
{
JCO$Pool pool_to_check = null;
long to_sleep = 0L;
do
{
long next_check = 0x7fffffffffffffffL;
pool_to_check = null;
synchronized(pools)
{
if(pools.isEmpty())
try
{
pools.wait();
}
catch(InterruptedException ex)
{
JCO.fireTrace(1, "[JAV-LAYER] JCO.TimeoutChecker.run(): wait caused " + ex.toString());
break;
}
for(int i = pools.size(); --i >= 0;)
{
JCO$Pool pool = (JCO$Pool)pools.get(i);
if(pool.next_timeout_check < next_check)
{
pool_to_check = pool;
next_check = pool.next_timeout_check;
}
}
}
to_sleep = next_check - System.currentTimeMillis();
if(pool_to_check == null)
continue;
if(to_sleep > 0L)
{
synchronized(pools)
{
try
{
pools.wait(to_sleep);
}
catch(InterruptedException ex)
{
JCO.fireTrace(1, "[JAV-LAYER] TimeoutChecker.run(): wait caused " + ex.toString());
break;
}
}
continue;
}
if(pools.contains(pool_to_check))
{
pool_to_check.checkForTimeout();
pool_to_check.next_timeout_check = System.currentTimeMillis() + pool_to_check.timeout_check_period;
}
} while(true);
}
private pools manager;
private boolean is_stopped;
private ObjectList pools;
private Thread ownThread;
public JCO$PoolManager$TimeoutChecker(JCO$PoolManager manager)
{
is_stopped = false;
pools = new ObjectList();
ownThread = null;
this.manager = manager;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -