View Javadoc

1   /**
2    * Copyright 2008 Atlassian Pty Ltd 
3    * 
4    * Licensed under the Apache License, Version 2.0 (the "License"); 
5    * you may not use this file except in compliance with the License.
6    * You may obtain a copy of the License at 
7    * 
8    *     http://www.apache.org/licenses/LICENSE-2.0 
9    * 
10   * Unless required by applicable law or agreed to in writing, software 
11   * distributed under the License is distributed on an "AS IS" BASIS, 
12   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 
13   * See the License for the specific language governing permissions and 
14   * limitations under the License.
15   */
16  
17  package io.atlassian.fugue.auc;
18  
19  import java.util.concurrent.TimeUnit;
20  
21  /**
22   * Class exists to support testing LazyReference it is not intended for general
23   * use. See atlassian.util.concurrent.Awaitable
24   *
25   * Something that can be awaited upon.
26   * 
27   * @author Jed Wesley-Smith
28   */
29  public interface Awaitable {
30  
31    /**
32     * Await for the condition to become true.
33     */
34    void await() throws InterruptedException;
35  
36    /**
37     * Await for the specified time for the condition to become true.
38     * 
39     * @param time the amount to wait.
40     * @param unit the unit to wait in.
41     * @return true if the condition became true within the time limit, false
42     * otherwise.
43     */
44    boolean await(long time, TimeUnit unit) throws InterruptedException;
45  }