abstract class AtomicNumber[A] extends Atomic[A]
Represents an Atomic reference holding a number, providing helpers for easily incrementing and decrementing it.
- A
should be something that's Numeric
- Source
- AtomicNumber.scala
- Alphabetic
- By Inheritance
- AtomicNumber
- Atomic
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new AtomicNumber()
Abstract Value Members
- abstract def add(v: A): Unit
Adds to the atomic number the given value.
- abstract def addAndGet(v: A): A
Adds to the atomic number and returns the result.
- abstract def compareAndSet(expect: A, update: A): Boolean
Does a compare-and-set operation on the current value.
Does a compare-and-set operation on the current value. For more info, checkout the related Compare-and-swap Wikipedia page.
It's an atomic, worry free operation.
- expect
is the value you expect to be persisted when the operation happens
- update
will be the new value, should the check for
expect
succeeds- returns
either true in case the operation succeeded or false otherwise
- Definition Classes
- Atomic
- abstract def decrement(v: Int = 1): Unit
Decrements the atomic number with the given integer.
- abstract def decrementAndGet(v: Int = 1): A
Decrements the atomic number and returns the result.
- abstract def get(): A
Get the current value persisted by this Atomic.
Get the current value persisted by this Atomic.
- Definition Classes
- Atomic
- abstract def getAndAdd(v: A): A
Adds to the the atomic number and returns the value before the update.
- abstract def getAndDecrement(v: Int = 1): A
Decrements the atomic number and returns the value before the update.
- abstract def getAndIncrement(v: Int = 1): A
Increments the atomic number and returns the value before the update.
- abstract def getAndSet(update: A): A
Sets the persisted value to
update
and returns the old value that was in place.Sets the persisted value to
update
and returns the old value that was in place. It's an atomic, worry free operation.- Definition Classes
- Atomic
- abstract def getAndSubtract(v: A): A
Subtracts from the atomic number and returns the value before the update.
- abstract def increment(v: Int = 1): Unit
Increment with the given integer
- abstract def incrementAndGet(v: Int = 1): A
Increments the atomic number and returns the result.
- abstract def lazySet(update: A): Unit
Eventually sets to the given value.
Eventually sets to the given value. Has weaker visibility guarantees than the normal
set()
.- Definition Classes
- Atomic
- abstract def set(update: A): Unit
Updates the current value.
- abstract def subtract(v: A): Unit
Subtracts from the atomic number the given value.
- abstract def subtractAndGet(v: A): A
Subtracts from the atomic number and returns the result.
Concrete Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final macro def +=(value: A): Unit
Subtracts from the atomic number the given value.
Subtracts from the atomic number the given value. Alias for
subtract
. - final macro def -=(value: A): Unit
Adds to the atomic number the given value.
Adds to the atomic number the given value. Alias for
add
. - final macro def :=(value: A): Unit
Alias for set.
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final macro def apply(): A
Get the current value persisted by this Atomic, an alias for
get()
.Get the current value persisted by this Atomic, an alias for
get()
.- Definition Classes
- Atomic
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final macro def getAndTransform(cb: (A) => A): A
Abstracts over
compareAndSet
.Abstracts over
compareAndSet
. You specify a transformation by specifying a callback to be executed, a callback that transforms the current value. This method will loop until it will succeed in replacing the current value with the one produced by the given callback.Note that the callback will be executed on each iteration of the loop, so it can be called multiple times - don't do destructive I/O or operations that mutate global state in it.
- cb
is a callback that receives the current value as input and returns the
update
which is the new value that should be persisted- returns
the old value, just prior to when the successful update happened
- Definition Classes
- Atomic
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- 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() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final macro def transform(cb: (A) => A): Unit
Abstracts over
compareAndSet
.Abstracts over
compareAndSet
. You specify a transformation by specifying a callback to be executed, a callback that transforms the current value. This method will loop until it will succeed in replacing the current value with the one produced by the given callback.Note that the callback will be executed on each iteration of the loop, so it can be called multiple times - don't do destructive I/O or operations that mutate global state in it.
- cb
is a callback that receives the current value as input and returns the
update
which is the new value that should be persisted
- Definition Classes
- Atomic
- macro def transformAndExtract[U](cb: (A) => (U, A)): U
Abstracts over
compareAndSet
.Abstracts over
compareAndSet
. You specify a transformation by specifying a callback to be executed, a callback that transforms the current value. This method will loop until it will succeed in replacing the current value with the one produced by your callback.Note that the callback will be executed on each iteration of the loop, so it can be called multiple times - don't do destructive I/O or operations that mutate global state in it.
- cb
is a callback that receives the current value as input and returns a tuple that specifies the update + what should this method return when the operation succeeds.
- returns
whatever was specified by your callback, once the operation succeeds
- Definition Classes
- Atomic
- macro def transformAndGet(cb: (A) => A): A
Abstracts over
compareAndSet
.Abstracts over
compareAndSet
. You specify a transformation by specifying a callback to be executed, a callback that transforms the current value. This method will loop until it will succeed in replacing the current value with the one produced by the given callback.Note that the callback will be executed on each iteration of the loop, so it can be called multiple times - don't do destructive I/O or operations that mutate global state in it.
- cb
is a callback that receives the current value as input and returns the
update
which is the new value that should be persisted- returns
whatever the update is, after the operation succeeds
- Definition Classes
- Atomic
- final macro def update(value: A): Unit
Alias for set.
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
This is the API documentation for the Monix library.
Package Overview
monix.execution exposes lower level primitives for dealing with asynchronous execution:
Atomic
types, as alternative tojava.util.concurrent.atomic
monix.catnap exposes pure abstractions built on top of the Cats-Effect type classes:
monix.eval is for dealing with evaluation of results, thus exposing Task and Coeval.
monix.reactive exposes the
Observable
pattern:Observable
implementationsmonix.tail exposes Iterant for purely functional pull based streaming:
Batch
andBatchCursor
, the alternatives to Scala'sIterable
andIterator
respectively that we are using within Iterant's encodingYou can control evaluation with type you choose - be it Task, Coeval, cats.effect.IO or your own as long as you provide correct cats-effect or cats typeclass instance.