package misc
- Alphabetic
- Public
- All
Type Members
-
final
class
AsyncQueue[A] 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
AsyncSemaphoreis an asynchronous semaphore implementation that limits the parallelism onFutureexecution.The
AsyncSemaphoreis an asynchronous semaphore implementation that limits the parallelism onFutureexecution.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
AsyncVaris 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.MVarfrom Haskell. -
trait
HygieneUtilMacros extends AnyRef
Utilities for macro-hygiene.
- trait InlineMacros extends AnyRef
-
final
class
Local[A] extends AnyRef
A
Localis a ThreadLocal whose scope is flexible.A
Localis a ThreadLocal whose scope is flexible. The state of all Locals may be saved or restored onto the current thread by the user. This is useful for threading Locals through execution contexts.Because it's not meaningful to inherit control from two places, Locals don't have to worry about having to merge two contexts.
Note: the implementation is optimized for situations in which save and restore optimizations are dominant.
-
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 Local
-
object
NonFatal
Extractor of non-fatal
Throwableinstances.Extractor of non-fatal
Throwableinstances.This is an alternative to
scala.util.control.NonFatalthat only considersVirtualMachineErroras being non-fatal. - object ThreadLocal