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
generateModuleImports
generateModuleImportsImpl
isolatedAggregateMethodsString private private
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
receive
receiveOnly
receiveTimeout
send
setMaxMailboxSize
setMaxMailboxSize

Structs

Name Description
ScopedLock Proxy structure that keeps the monitor of the given object locked until it goes out of scope.

Templates

Name Description
Isolated Encapsulates the given type in a way that guarantees memory isolation.
ScopedRef Encapsulates a reference in a way that disallows escaping it or any contained references.
haveTypeAlready
isCopyable
isMemberPublic
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.

Aliases

Name Type Description
Tid Task

Authors

Sönke Ludwig

Copyright

© 2013 RejectedSoftware e.K.

License

Subject to the terms of the MIT license, as written in the included LICENSE.txt file.