Class Rendezvous

java.lang.Object
org.jboss.byteman.synchronization.Rendezvous

public class Rendezvous extends Object
class used to manage rule rendezvous operations
  • Nested Class Summary

    Nested Classes
    Modifier and Type
    Class
    Description
    class 
    class encapsulating state for a specific rendezvous
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    the current counter for this rendezvous
    private int
    the number of threads which are expected to arrive at this rendezvous
    private boolean
    true if a rendezvous was deleted while a rendezbvous was in progress but had not completed
    private boolean
    true if a non-restartable rendezvous has completed and has not been removed from the rendezvous map
    private boolean
    true if this rendezvous can be repeatedly joined, false it it is a one-off meeting
  • Constructor Summary

    Constructors
    Constructor
    Description
    Rendezvous(int expected)
     
    Rendezvous(int expected, boolean rejoinable)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    delete this rendezvous causing any waiting threads to return -1 form the rendezvous call.
    int
    retrieve the number of threads waiting at the rendezvous or -1 if the rendezvous has been deleted
    int
     
    boolean
    check if the rendezvous has completed but has not yet been removed
    int
    rendezvous(long millis)
    enter this rendezvous.
    void
    mark a completed rendezvous to indicate that it has been removed

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • expected

      private int expected
      the number of threads which are expected to arrive at this rendezvous
    • counter

      private Rendezvous.Counter counter
      the current counter for this rendezvous
    • rejoinable

      private boolean rejoinable
      true if this rendezvous can be repeatedly joined, false it it is a one-off meeting
    • isDeleted

      private boolean isDeleted
      true if a rendezvous was deleted while a rendezbvous was in progress but had not completed
    • needsRemove

      private boolean needsRemove
      true if a non-restartable rendezvous has completed and has not been removed from the rendezvous map
  • Constructor Details

    • Rendezvous

      public Rendezvous(int expected)
    • Rendezvous

      public Rendezvous(int expected, boolean rejoinable)
  • Method Details

    • rendezvous

      public int rendezvous(long millis)
      enter this rendezvous. n.b. this must be called synchronized on the rendezvous object in question
      Parameters:
      millis - how long to wait (wait forever if 0)
      Returns:
      the index in arrival order from 0 to expected of the calling thread or -1 if either the rendezvous has completed and is not restartable or the rendezvous has been deleted
    • delete

      public boolean delete()
      delete this rendezvous causing any waiting threads to return -1 form the rendezvous call. n.b. this must be called synchronized on the rendezvous object in question
      Returns:
      false if a delete has already been requested otherwise true
    • getExpected

      public int getExpected()
    • getArrived

      public int getArrived()
      retrieve the number of threads waiting at the rendezvous or -1 if the rendezvous has been deleted
      Returns:
      number of threads waiting or -1
    • needsRemove

      public boolean needsRemove()
      check if the rendezvous has completed but has not yet been removed
      Returns:
      the above
    • setRemoved

      public void setRemoved()
      mark a completed rendezvous to indicate that it has been removed