Package com.fizzed.crux.util
Class WaitFor
- java.lang.Object
-
- com.fizzed.crux.util.WaitFor
-
public class WaitFor extends java.lang.ObjectBasic abstraction of a spin-lock waiting for something to be true. Ideally you'd use real concurrent mechanisms, but that's not always available for things you need to evaluate.- Author:
- joelauer
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classWaitFor.Progress
-
Constructor Summary
Constructors Constructor Description WaitFor(java.util.function.Function<WaitFor.Progress,java.lang.Boolean> condition)WaitFor(java.util.function.Supplier<java.lang.Boolean> condition)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanawait(long timeout, long every, java.util.concurrent.TimeUnit tu)booleanawait(TimeDuration timeout, TimeDuration every)booleanawaitMillis(long timeout, long every)static WaitForof(java.util.function.Function<WaitFor.Progress,java.lang.Boolean> condition)static WaitForof(java.util.function.Supplier<java.lang.Boolean> condition)voidrequire(long timeout, long every, java.util.concurrent.TimeUnit tu)voidrequire(TimeDuration timeout, TimeDuration every)static voidrequire(TimeDuration timeout, TimeDuration every, java.util.function.Function<WaitFor.Progress,java.lang.Boolean> condition)static voidrequire(java.util.function.Supplier<java.lang.Boolean> condition, long timeout, long every, java.util.concurrent.TimeUnit timeUnit)voidrequireMillis(long timeout, long every)static voidrequireMillis(java.util.function.Supplier<java.lang.Boolean> condition, long timeout, long every)
-
-
-
Constructor Detail
-
WaitFor
public WaitFor(java.util.function.Supplier<java.lang.Boolean> condition)
-
WaitFor
public WaitFor(java.util.function.Function<WaitFor.Progress,java.lang.Boolean> condition)
-
-
Method Detail
-
requireMillis
public void requireMillis(long timeout, long every) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException- Throws:
java.lang.InterruptedExceptionjava.util.concurrent.TimeoutException
-
require
public void require(long timeout, long every, java.util.concurrent.TimeUnit tu) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException- Throws:
java.lang.InterruptedExceptionjava.util.concurrent.TimeoutException
-
require
public void require(TimeDuration timeout, TimeDuration every) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
- Throws:
java.lang.InterruptedExceptionjava.util.concurrent.TimeoutException
-
awaitMillis
public boolean awaitMillis(long timeout, long every) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
await
public boolean await(long timeout, long every, java.util.concurrent.TimeUnit tu) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
await
public boolean await(TimeDuration timeout, TimeDuration every) throws java.lang.InterruptedException
- Throws:
java.lang.InterruptedException
-
of
public static WaitFor of(java.util.function.Supplier<java.lang.Boolean> condition)
-
of
public static WaitFor of(java.util.function.Function<WaitFor.Progress,java.lang.Boolean> condition)
-
requireMillis
public static void requireMillis(java.util.function.Supplier<java.lang.Boolean> condition, long timeout, long every) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException- Throws:
java.lang.InterruptedExceptionjava.util.concurrent.TimeoutException
-
require
public static void require(TimeDuration timeout, TimeDuration every, java.util.function.Function<WaitFor.Progress,java.lang.Boolean> condition) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException
- Throws:
java.lang.InterruptedExceptionjava.util.concurrent.TimeoutException
-
require
public static void require(java.util.function.Supplier<java.lang.Boolean> condition, long timeout, long every, java.util.concurrent.TimeUnit timeUnit) throws java.lang.InterruptedException, java.util.concurrent.TimeoutException- Throws:
java.lang.InterruptedExceptionjava.util.concurrent.TimeoutException
-
-