final class RefCountCancelable extends BooleanCancelable
Represents a Cancelable that only executes the canceling logic when all
dependent cancelable objects have been canceled.
The given callback gets called after our RefCountCancelable is canceled
and after all dependent cancelables have been canceled along with the
main cancelable.
In other words, lets say for example that we have acquired 2 children.
In order for the cancelable to get canceled, we need to:
- cancel both children
- cancel the main
RefCountCancelable
The implementation is thread-safe and cancellation order doesn't matter.
- Source
- RefCountCancelable.scala
- Alphabetic
- By Inheritance
- RefCountCancelable
- BooleanCancelable
- Cancelable
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- def acquire(): Cancelable
Acquires a new Cancelable.
Acquires a new Cancelable.
- Annotations
- @tailrec()
- 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
- RefCountCancelable → Cancelable
- def isCanceled: Boolean
- returns
true in case this cancelable hasn't been canceled, or false otherwise.
- Definition Classes
- RefCountCancelable → BooleanCancelable

This is the API documentation for the Monix library.
Package Overview
monix.execution exposes lower level primitives for dealing with asynchronous execution:
Atomictypes, as alternative tojava.util.concurrent.atomicmonix.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
Observablepattern:Observableimplementationsmonix.tail exposes Iterant for purely functional pull based streaming:
BatchandBatchCursor, the alternatives to Scala'sIterableandIteratorrespectively 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.