Packages

final class OrderedCancelable extends Multi

Represents a Cancelable whose underlying cancelable reference can be swapped for another and that has the capability to force ordering of updates.

For the most part it's very similar with MultiAssignCancelable:

val s = OrderedCancelable()
s := c1 // sets the underlying cancelable to c1
s := c2 // swaps the underlying cancelable to c2

s.cancel() // also cancels c2

s := c3 // also cancels c3, because s is already canceled

However it also has the capability of doing orderedUpdate:

val s = OrderedCancelable()

ec.execute(new Runnable {
  def run() =
    s.orderedUpdate(ref2, 2)
})

// The ordered updates are guarding against reversed ordering
// due to the created thread being able to execute before the
// following update
s.orderedUpdate(ref1, 1)

Also see:

  • SerialCancelable, which is similar, except that it cancels the old cancelable upon assigning a new cancelable
  • SingleAssignCancelable that is effectively a forward reference that can be assigned at most once
  • MultiAssignCancelable that's very similar with OrderedCancelable, but simpler, without the capability of doing ordered updates and possibly more efficient
Source
OrderedCancelable.scala
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. OrderedCancelable
  2. Multi
  3. Bool
  4. BooleanCancelable
  5. AssignableCancelable
  6. Cancelable
  7. Serializable
  8. Serializable
  9. AnyRef
  10. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. def :=(value: Cancelable): OrderedCancelable.this.type

    Updates the internal reference of this assignable cancelable to the given value.

    Updates the internal reference of this assignable cancelable to the given value.

    If this cancelable is already canceled, then value is going to be canceled on assignment as well.

    returns

    this

    Definition Classes
    OrderedCancelableAssignableCancelable
    Annotations
    @tailrec()
  4. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def cancel(): Unit

    Cancels the unit of work represented by this reference.

    Cancels the unit of work represented by this reference.

    Guaranteed idempotency - calling it multiple times should have the same side-effect as calling it only once. Implementations of this method should also be thread-safe.

    Definition Classes
    OrderedCancelableCancelable
  7. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  8. def currentOrder: Long

    Returns the current order index, useful for working with orderedUpdate in instances where the OrderedCancelable reference is shared.

  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  11. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  12. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  14. def isCanceled: Boolean

    returns

    true in case this cancelable hasn't been canceled, or false otherwise.

    Definition Classes
    OrderedCancelableBooleanCancelable
  15. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  16. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  17. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  19. def orderedUpdate(value: Cancelable, order: Long): OrderedCancelable.this.type

    An ordered update is an update with an order attached and if the currently stored reference has on order that is greater than the update, then the update is ignored.

    An ordered update is an update with an order attached and if the currently stored reference has on order that is greater than the update, then the update is ignored.

    Useful to force ordering for concurrent updates.

    Annotations
    @tailrec()
  20. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  21. def toString(): String
    Definition Classes
    AnyRef → Any
  22. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  24. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from Multi

Inherited from Bool

Inherited from BooleanCancelable

Inherited from AssignableCancelable

Inherited from Cancelable

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped