⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jco$poolmanager$timeoutchecker.java

📁 SAP这个系统的一个转换器
💻 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 + -