public class org.apache.http.impl.conn.tsccm.WaitingThread extends java.lang.Object
{
private final java.util.concurrent.locks.Condition cond;
private final org.apache.http.impl.conn.tsccm.RouteSpecificPool pool;
private java.lang.Thread waiter;
private boolean aborted;
public void <init>(java.util.concurrent.locks.Condition, org.apache.http.impl.conn.tsccm.RouteSpecificPool)
{
org.apache.http.impl.conn.tsccm.WaitingThread v;
java.util.concurrent.locks.Condition v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.WaitingThread;
v := @parameter: java.util.concurrent.locks.Condition;
v := @parameter: org.apache.http.impl.conn.tsccm.RouteSpecificPool;
specialinvoke v.<java.lang.Object: void <init>()>();
staticinvoke <org.apache.http.util.Args: java.lang.Object notNull(java.lang.Object,java.lang.String)>(v, "Condition");
v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.util.concurrent.locks.Condition cond> = v;
v.<org.apache.http.impl.conn.tsccm.WaitingThread: org.apache.http.impl.conn.tsccm.RouteSpecificPool pool> = v;
return;
}
public final java.util.concurrent.locks.Condition getCondition()
{
org.apache.http.impl.conn.tsccm.WaitingThread v;
java.util.concurrent.locks.Condition v;
v := @this: org.apache.http.impl.conn.tsccm.WaitingThread;
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.util.concurrent.locks.Condition cond>;
return v;
}
public final org.apache.http.impl.conn.tsccm.RouteSpecificPool getPool()
{
org.apache.http.impl.conn.tsccm.WaitingThread v;
org.apache.http.impl.conn.tsccm.RouteSpecificPool v;
v := @this: org.apache.http.impl.conn.tsccm.WaitingThread;
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: org.apache.http.impl.conn.tsccm.RouteSpecificPool pool>;
return v;
}
public final java.lang.Thread getThread()
{
org.apache.http.impl.conn.tsccm.WaitingThread v;
java.lang.Thread v;
v := @this: org.apache.http.impl.conn.tsccm.WaitingThread;
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.lang.Thread waiter>;
return v;
}
public boolean await(java.util.Date) throws java.lang.InterruptedException
{
java.lang.Throwable v;
java.lang.IllegalStateException v;
java.util.Date v;
java.lang.Thread v, v, v, v;
org.apache.http.impl.conn.tsccm.WaitingThread v;
java.lang.String v;
boolean v, v, v;
java.util.concurrent.locks.Condition v, v;
java.lang.InterruptedException v, v;
v := @this: org.apache.http.impl.conn.tsccm.WaitingThread;
v := @parameter: java.util.Date;
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.lang.Thread waiter>;
if v == null goto label;
v = new java.lang.IllegalStateException;
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.lang.Thread waiter>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.Thread,java.lang.Thread)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("A thread is already waiting on this object.\ncaller: \u0001\nwaiter: \u0001");
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>(v);
throw v;
label:
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: boolean aborted>;
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>(java.lang.String)>("Operation interrupted");
throw v;
label:
v = staticinvoke <java.lang.Thread: java.lang.Thread currentThread()>();
v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.lang.Thread waiter> = v;
label:
if v == null goto label;
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.util.concurrent.locks.Condition cond>;
v = interfaceinvoke v.<java.util.concurrent.locks.Condition: boolean awaitUntil(java.util.Date)>(v);
goto label;
label:
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.util.concurrent.locks.Condition cond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void await()>();
v = 1;
label:
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: boolean aborted>;
if v == 0 goto label;
v = new java.lang.InterruptedException;
specialinvoke v.<java.lang.InterruptedException: void <init>(java.lang.String)>("Operation interrupted");
throw v;
label:
v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.lang.Thread waiter> = null;
goto label;
label:
v := @caughtexception;
v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.lang.Thread waiter> = null;
throw v;
label:
return v;
catch java.lang.Throwable from label to label with label;
}
public void wakeup()
{
java.lang.IllegalStateException v;
java.util.concurrent.locks.Condition v;
java.lang.Thread v;
org.apache.http.impl.conn.tsccm.WaitingThread v;
v := @this: org.apache.http.impl.conn.tsccm.WaitingThread;
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.lang.Thread waiter>;
if v != null goto label;
v = new java.lang.IllegalStateException;
specialinvoke v.<java.lang.IllegalStateException: void <init>(java.lang.String)>("Nobody waiting on this object.");
throw v;
label:
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.util.concurrent.locks.Condition cond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
return;
}
public void interrupt()
{
org.apache.http.impl.conn.tsccm.WaitingThread v;
java.util.concurrent.locks.Condition v;
v := @this: org.apache.http.impl.conn.tsccm.WaitingThread;
v.<org.apache.http.impl.conn.tsccm.WaitingThread: boolean aborted> = 1;
v = v.<org.apache.http.impl.conn.tsccm.WaitingThread: java.util.concurrent.locks.Condition cond>;
interfaceinvoke v.<java.util.concurrent.locks.Condition: void signalAll()>();
return;
}
}