package batteries
Install
dune-project
Dependency
Authors
Maintainers
Sources
md5=b691e5870f876c6e590d6aa51b4c5457
sha512=3b0643ff337cd70da8c4b77887d212e82d043a7163fca36588be12186bc86bbcf0d56b13349325f12eabb96c846204c88560786342f50af7bf4e20b9480d3964
doc/batteries.unthreaded/BatConcurrent/index.html
Module BatConcurrent
Source
Definition of concurrency primitives.
The light-weight type of a lock, i.e. a construction which may be used to guarantee that a section will not be interrupted by another thread.
This light-weight type is independent of the underlying locking mechanism and can be used if you do not know whether your code will run with vmthreads, Posix threads, coThreads, etc.
Create a lock from a pair of locking/unlocking functions
synchronize locker f
returns a function f'
which behaves as f
but whose executions are protected by one lock obtained from locker
. The same lock will be reused for all subsequent uses of f'
.
For instance, synchronize Mutex.make f
is a new function whose executions will by synchronized by a new lock. Conversely, synchronize (const my_lock) f
is a new function whose executions will be synchronized by an existing lock my_lock
.
Specialized version of synchronized
.
sync lock f
behaves as synchronize (const lock) f
but slightly faster