Packages

class AtomicBarrier extends AnyRef

An atomic barrier is similar to a countdown latch, except that the content is a state transition system with semantic meaning instead of a simple counter.

It is designed with a single writer ("unblocker") thread and a single reader ("waiter") thread in mind. It is concurrency safe with more writers and readers, but using more is likely to cause race conditions for legal transitions. That is to say, trying to perform an otherwise legal transition twice is illegal and may occur if there is more than one unblocker or waiter thread. Having additional passive state observers that only call load() is never an issue.

Legal transitions are: - BLOCKED -> UNBLOCKED - BLOCKED -> REQUESTED - REQUESTED -> UNBLOCKED - UNBLOCKED -> PASSED

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. AtomicBarrier
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new AtomicBarrier()

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  6. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  7. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  9. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  10. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  11. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  12. def load(): State

    Get the current state.

  13. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  14. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  15. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  16. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  17. def toString(): String
    Definition Classes
    AtomicBarrier → AnyRef → Any
  18. def unblock(): Unit

    Transition to the Unblocked state.

  19. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  22. def waitToPass(): Unit

    Wait until this barrier can be passed and then mark it as Passed.

Inherited from AnyRef

Inherited from Any

Ungrouped