Local

object Local
Companion:
class
class Object
trait Matchable
class Any
Local.type

Type members

Classlikes

sealed abstract class Context

Represents the current state of all locals for a given execution context.

Represents the current state of all locals for a given execution context.

This should be treated as an opaque value and direct modifications and access are considered verboten.

final class Key extends Serializable

Internal — key type used in Context.

Internal — key type used in Context.

Value members

Concrete methods

def apply[A](default: A): Local[A]

Builds a new Local with the given default to be returned if a value hasn't been set, or after the local gets cleared.

Builds a new Local with the given default to be returned if a value hasn't been set, or after the local gets cleared.

 val num = Local(0)
 num() //=> 0

 num := 100
 num() //=> 100

 num.clear()
 num() //=> 0
def bind[R](ctx: Context)(f: => R)(implicit R: CanBindLocals[R]): R

Execute a block of code using the specified state of Local.Context and restore the current state when complete.

Execute a block of code using the specified state of Local.Context and restore the current state when complete.

The implementation uses the CanBindLocals type class because in case of asynchronous data types that should be waited on, like Future or CompletableFuture, then the locals context also needs to be cleared on the future's completion, for correctness.

   There's no default instance for synchronous actions available
   in scope. If you need to work with synchronous actions, you
   need to import it explicitly:
         import monix.execution.misc.CanBindLocals.Implicits.synchronousAsDefault
def bindClear[R](f: => R)(implicit R: CanBindLocals[R]): R

Execute a block of code with a clear state of Local.Context and restore the current state when complete.

Execute a block of code with a clear state of Local.Context and restore the current state when complete.

The implementation uses the CanBindLocals type class because in case of asynchronous data types that should be waited on, like Future or CompletableFuture, then the locals context also needs to be cleared on the future's completion, for correctness.

   There's no default instance for synchronous actions available
   in scope. If you need to work with synchronous actions, you
   need to import it explicitly:
         import monix.execution.misc.CanBindLocals.Implicits.synchronousAsDefault

Clear the Local state.

Clear the Local state.

def closed[R](fn: () => R)(implicit R: CanBindLocals[R]): () => R

Convert a closure () => R into another closure of the same type whose Local.Context is saved when calling closed and restored upon invocation.

Convert a closure () => R into another closure of the same type whose Local.Context is saved when calling closed and restored upon invocation.

Return the state of the current Local state.

Return the state of the current Local state.

def isolate[R](f: => R)(implicit R: CanBindLocals[R]): R

Execute a block of code without propagating any Local.Context changes outside.

Execute a block of code without propagating any Local.Context changes outside.

The implementation uses the CanBindLocals type class because in case of asynchronous data types that should be waited on, like Future or CompletableFuture, then the locals context also needs to be cleared on the future's completion, for correctness.

   There's no default instance for synchronous actions available
   in scope. If you need to work with synchronous actions, you
   need to import it explicitly:
         import monix.execution.misc.CanBindLocals.Implicits.synchronousAsDefault

Creates a new, empty Context.

Creates a new, empty Context.

Restore the Local state to a given Context.

Restore the Local state to a given Context.

Deprecated and Inherited methods

@deprecated("Switch to local.closed[R: CanIsolate]", since = "3.0.0")
def closed[R](fn: () => R): () => R

DEPRECATED — switch to local.closed[R: CanIsolate].

DEPRECATED — switch to local.closed[R: CanIsolate].

Deprecated
[Since version 3.0.0]
Inherited from:
LocalCompanionDeprecated
@deprecated("Renamed to Local.newContext", "3.0.0")
def defaultContext(): Unbound

DEPRECATED — switch to Local.newContext.

DEPRECATED — switch to Local.newContext.

Deprecated
Inherited from:
LocalCompanionDeprecated