summaryrefslogtreecommitdiff
path: root/stdlib/queue.mli
diff options
context:
space:
mode:
authorFlorian Angeletti <florian.angeletti@inria.fr>2022-11-18 11:23:49 +0100
committerFlorian Angeletti <florian.angeletti@inria.fr>2022-11-18 11:23:49 +0100
commit7c79659c7ceb64a5a720edb1d2f8f202e142fe96 (patch)
tree54d1146ca847e18fa03b48bab5e8a3d2123d94d0 /stdlib/queue.mli
parent634c90eca47afbb214b89e10697cc9ca2dff90e2 (diff)
downloadocaml-7c79659c7ceb64a5a720edb1d2f8f202e142fe96.tar.gz
stdlib: add an unsynchronized_access alert to mutable datatypes
Diffstat (limited to 'stdlib/queue.mli')
-rw-r--r--stdlib/queue.mli14
1 files changed, 11 insertions, 3 deletions
diff --git a/stdlib/queue.mli b/stdlib/queue.mli
index caf6c85fde..a6fe4df732 100644
--- a/stdlib/queue.mli
+++ b/stdlib/queue.mli
@@ -17,10 +17,18 @@
This module implements queues (FIFOs), with in-place modification.
See {{!examples} the example section} below.
+*)
+
+(** {b Unsynchronized accesses} *)
+
+[@@@alert unsynchronized_access
+ "Unsynchronized accesses to queues are a programming error."
+]
- {b Warning} This module is not thread-safe: each {!Queue.t} value
- must be protected from concurrent access (e.g. with a [Mutex.t]).
- Failure to do so can lead to a crash.
+(**
+ Unsynchronized accesses to a queue may lead to an invalid queue state.
+ Thus, concurrent accesses to queues must be synchronized (for instance
+ with a {!Mutex.t}).
*)
type !'a t