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
- Alphabetic
- By Inheritance
- OrderedCancelable
- Multi
- Bool
- BooleanCancelable
- AssignableCancelable
- Cancelable
- Serializable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
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
- OrderedCancelable → AssignableCancelable
- Annotations
- @tailrec()
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
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
- OrderedCancelable → Cancelable
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )
-
def
currentOrder: Long
Returns the current order index, useful for working with orderedUpdate in instances where the OrderedCancelable reference is shared.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
isCanceled: Boolean
- returns
true in case this cancelable hasn't been canceled, or false otherwise.
- Definition Classes
- OrderedCancelable → BooleanCancelable
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
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()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @throws( ... )