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
|
Unsafe facility to assume that an existing reference is unique. |
async
|
Starts an asynchronous computation and returns a future for the result value. |
lock
|
Locks the given shared object and returns a ScopedLock for accessing any unshared members.
|
makeIsolated
|
Creates a new isolated object. |
makeIsolatedArray
|
Creates a new isolated array. |
prioritySend
|
|
prioritySendCompat
|
|
receiveCompat
|
|
receiveOnlyCompat
|
|
receiveTimeoutCompat
|
|
send
|
|
sendCompat
|
|
setMaxMailboxSizeCompat
|
|
setMaxMailboxSizeCompat
|
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-2014 RejectedSoftware e.K.
License
Subject to the terms of the MIT license, as written in the included LICENSE.txt file.