package misc
- Alphabetic
- Public
- All
Type Members
-
final
class
AsyncQueue
[T] extends Serializable
And asynchronous queue implementation.
And asynchronous queue implementation.
On
poll
, if there are queued elements, it returns oe immediately, otherwise it returns aFuture
-
final
class
AsyncSemaphore
extends Serializable
The
AsyncSemaphore
is an asynchronous semaphore implementation that limits the parallelism onFuture
execution.The
AsyncSemaphore
is an asynchronous semaphore implementation that limits the parallelism onFuture
execution.The following example instantiates a semaphore with a maximum parallelism of 10:
val semaphore = AsyncSemaphore(maxParallelism = 10) def makeRequest(r: HttpRequest): Future[HttpResponse] = ??? // For such a task no more than 10 requests // are allowed to be executed in parallel. val future = semaphore.greenLight(() => makeRequest(???))
-
final
class
AsyncVar
[A] extends AnyRef
Asynchronous mutable location, that is either empty or contains a value of type
A
.Asynchronous mutable location, that is either empty or contains a value of type
A
.It has 2 fundamental atomic operations:
- put which fills the var if empty, or blocks (asynchronously) otherwise until the var is empty again
- take which empties the var if full, returning the contained value, or blocks (asynchronously) otherwise until there is a value to pull
The
AsyncVar
is appropriate for building synchronization primitives and performing simple inter-thread communications. If it helps, it's similar with aBlockingQueue(capacity = 1)
, except that it doesn't block any threads, all waiting being callback-based.Given its asynchronous, non-blocking nature, it can be used on top of Javascript as well.
Inspired by
Control.Concurrent.MVar
from Haskell. -
trait
HygieneUtilMacros
extends AnyRef
Utilities for macro-hygiene.
Utilities for macro-hygiene.
- Annotations
- @bundle()
-
trait
InlineMacros
extends AnyRef
- Annotations
- @bundle()
-
final
class
ThreadLocal
[A] extends AnyRef
Cross-platform equivalent for
java.lang.ThreadLocal
, for specifying thread-local variables.Cross-platform equivalent for
java.lang.ThreadLocal
, for specifying thread-local variables.These variables differ from their normal counterparts in that each thread that accesses one (via its ThreadLocal#get or ThreadLocal#set method) has its own, independently initialized copy of the variable.
Value Members
- object AsyncQueue extends Serializable
- object AsyncSemaphore extends Serializable
- object AsyncVar
- object ThreadLocal
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.eval is for dealing with evaluation of results, thus exposing Task and Coeval.
monix.reactive exposes the
Observable
pattern:Observable
implementationsmonix.types implements type-class shims, to be translated to type-classes provided by libraries such as Cats or Scalaz.
monix.cats is the optional integration with the Cats library, providing translations for the types described in
monix.types
.monix.scalaz is the optional integration with the Scalaz library, providing translations for the types described in
monix.types
.