Module vibe.core.concurrency Functions and structures for dealing with threads and concurrent access.
This module is modeled after std.concurrency, but provides a fiber-aware alternative
to it. All blocking operations will yield the calling fiber instead of blocking it.
Functions
Name Description
assumeIsolated (object)
Unsafe facility to assume that an existing reference is unique.
async (callable, args)
Starts an asynchronous computation and returns a future for the result value.
asyncWork (callable, args)
lock (object)
Locks the given shared object and returns a ScopedLock for accessing any unshared members.
makeIsolated (args)
Creates a new isolated object.
makeIsolatedArray (size)
Creates a new isolated array.
performInWorker (callable, arguments)
Performs work in a worker task and waits for the result to be available.
prioritySend (task, args)
prioritySend (tid, args)
send (task, args)
send (tid, args)
setConcurrencyPrimitive (primitive)
Sets the concurrency primitive to use for śtd . concurrency . spawn ()
.
Structs
Name Description
Future
Represents a values that will be computed asynchronously.
ScopedLock
Proxy structure that keeps the monitor of the given object locked until it
goes out of scope.
Aliases
Name Type Description
Isolated
T
Encapsulates the given type in a way that guarantees memory isolation.
ScopedRef
ScopedRefAggregate !T
Encapsulates a reference in a way that disallows escaping it or any contained references.
Authors
Sönke Ludwig
Copyright
© 2013-2014 Sönke Ludwig
License
Subject to the terms of the MIT license, as written in the included LICENSE.txt file.