📄 timelimitedtask.java
字号:
// Decompiled by Jad v1.5.8e2. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://kpdus.tripod.com/jad.html
// Decompiler options: packimports(3) fieldsfirst ansi space
// Source File Name: TimeLimitedTask.java
package org.gudy.azureus2.core3.util;
import org.gudy.azureus2.core3.security.SESecurityManager;
// Referenced classes of package org.gudy.azureus2.core3.util:
// AESemaphore, DelayedEvent, AERunnable
public class TimeLimitedTask
{
public static interface task
{
public abstract Object run()
throws Exception;
}
private String name;
private int max_millis;
private int priority;
private task t;
public TimeLimitedTask(String _name, int _max_millis, int _priority, task _t)
{
name = _name;
max_millis = _max_millis;
priority = _priority;
t = _t;
}
public Object run()
throws Throwable
{
Object result[] = {
null
};
final AESemaphore sem = new AESemaphore(name);
final Thread thread = new Thread(sem) {
final Object val$result[];
final AESemaphore val$sem;
final TimeLimitedTask this$0;
public void run()
{
result[0] = t.run();
sem.releaseForever();
break MISSING_BLOCK_LABEL_56;
Throwable e;
e;
result[0] = e;
sem.releaseForever();
break MISSING_BLOCK_LABEL_56;
Exception exception;
exception;
sem.releaseForever();
throw exception;
}
{
this$0 = TimeLimitedTask.this;
result = aobj;
sem = aesemaphore;
super(x0);
}
};
DelayedEvent ev = new DelayedEvent(name, max_millis, new AERunnable() {
final AESemaphore val$sem;
final Thread val$thread;
final TimeLimitedTask this$0;
public void runSupport()
{
if (!sem.isReleasedForever())
SESecurityManager.stopThread(thread);
}
{
this$0 = TimeLimitedTask.this;
sem = aesemaphore;
thread = thread1;
super();
}
});
thread.setPriority(priority);
thread.start();
sem.reserve();
ev.cancel();
if (result[0] instanceof Throwable)
throw (Throwable)result[0];
else
return result[0];
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -