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.
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.
prioritySend (task, args)
prioritySend (tid, args)
prioritySendCompat (tid, args)
receiveCompat (ops)
receiveOnlyCompat ()
receiveTimeoutCompat (timeout, ops)
send (task, args)
send (tid, args)
sendCompat (tid, args)
setMaxMailboxSizeCompat (tid, messages, on_crowding)
setMaxMailboxSizeCompat (tid, messages, on_crowding)
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.
Templates
Name Description
haveTypeAlready
isCopyable
Isolated
Encapsulates the given type in a way that guarantees memory isolation.
isStronglyIsolated
Determines if the given list of types has any non-immutable aliasing outside of their object tree.
isWeaklyIsolated
Determines if the given list of types has any non-immutable and unshared aliasing outside of their object tree.
ScopedRef
Encapsulates a reference in a way that disallows escaping it or any contained references.
Authors
Sönke Ludwig
Copyright
© 2013-2016 RejectedSoftware e.K.
License
Subject to the terms of the MIT license, as written in the included LICENSE.txt file.