Class Rendezvous
java.lang.Object
org.jboss.byteman.synchronization.Rendezvous
class used to manage rule rendezvous operations
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionclass
class encapsulating state for a specific rendezvous -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate Rendezvous.Counter
the current counter for this rendezvousprivate int
the number of threads which are expected to arrive at this rendezvousprivate boolean
true if a rendezvous was deleted while a rendezbvous was in progress but had not completedprivate boolean
true if a non-restartable rendezvous has completed and has not been removed from the rendezvous mapprivate boolean
true if this rendezvous can be repeatedly joined, false it it is a one-off meeting -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
delete()
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 deletedint
boolean
check if the rendezvous has completed but has not yet been removedint
rendezvous
(long millis) enter this rendezvous.void
mark a completed rendezvous to indicate that it has been removed
-
Field Details
-
expected
private int expectedthe number of threads which are expected to arrive at this rendezvous -
counter
the current counter for this rendezvous -
rejoinable
private boolean rejoinabletrue if this rendezvous can be repeatedly joined, false it it is a one-off meeting -
isDeleted
private boolean isDeletedtrue if a rendezvous was deleted while a rendezbvous was in progress but had not completed -
needsRemove
private boolean needsRemovetrue 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
-