Skip to content

Commit b8548e2

Browse files
committed
Document some common conventions
1 parent 7484a92 commit b8548e2

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

lib/index.mld

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -176,3 +176,18 @@ implementation of the other libraries.
176176
- {!modules: Picos_thread}
177177

178178
{^ Some of these libraries might be moved to other packages in the future.}
179+
180+
{1 Conventions}
181+
182+
Many operation in the Picos libraries use
183+
{{:https://en.wikipedia.org/wiki/Non-blocking_algorithm} non-blocking}
184+
algorithms. Unless explicitly specified otherwise,
185+
186+
- non-blocking operations in Picos are {i atomic} or {i strictly linearizable}
187+
(i.e. {{:https://en.wikipedia.org/wiki/Linearizability} linearizable} and
188+
{{:https://en.wikipedia.org/wiki/Database_transaction_schedule#Serializable}
189+
serializable}), and
190+
- {{:https://en.wikipedia.org/wiki/Non-blocking_algorithm#Lock-freedom}
191+
lock-free} operations in Picos are designed to avoid having competing
192+
operations of widely different complexities, which should make such operations
193+
much less prone to starvation.

0 commit comments

Comments
 (0)