Class Monitor.Guard

java.lang.Object
com.google.common.util.concurrent.Monitor.Guard
Direct Known Subclasses:
AbstractService.HasReachedRunningGuard, AbstractService.IsStartableGuard, AbstractService.IsStoppableGuard, AbstractService.IsStoppedGuard, ServiceManager.ServiceManagerState.AwaitHealthGuard, ServiceManager.ServiceManagerState.StoppedGuard
Enclosing class:
Monitor

public abstract static class Monitor.Guard extends Object
A boolean condition for which a thread may wait. A Guard is associated with a single Monitor. The monitor may check the guard at arbitrary times from any thread occupying the monitor, so code should not be written to rely on how often a guard might or might not be checked.

If a Guard is passed into any method of a Monitor other than the one it is associated with, an IllegalMonitorStateException is thrown.

Since:
10.0
  • Field Details

    • monitor

      final Monitor monitor
    • condition

      final Condition condition
    • waiterCount

      int waiterCount
    • next

      @CheckForNull Monitor.Guard next
      The next active guard
  • Constructor Details

    • Guard

      protected Guard(Monitor monitor)
  • Method Details

    • isSatisfied

      public abstract boolean isSatisfied()
      Evaluates this guard's boolean condition. This method is always called with the associated monitor already occupied. Implementations of this method must depend only on state protected by the associated monitor, and must not modify that state.