mirror of
https://github.com/RGBCube/serenity
synced 2025-05-16 10:14:57 +00:00
![]() This new class with an admittedly long OOP-y name provides a circular queue in shared memory. The queue is a lock-free synchronous queue implemented with atomics, and its implementation is significantly simplified by only accounting for one producer (and multiple consumers). It is intended to be used as a producer-consumer communication datastructure across processes. The original motivation behind this class is efficient short-period transfer of audio data in userspace. This class includes formal proofs of several correctness properties of the main queue operations `enqueue` and `dequeue`. These proofs are not 100% complete in their existing form as the invariants they depend on are "handwaved". This seems fine to me right now, as any proof is better than no proof :^). Anyways, the proofs should build confidence that the implemented algorithms, which are only roughly based on existing work, operate correctly in even the worst-case concurrency scenarios. |
||
---|---|---|
.. | ||
AK | ||
Kernel | ||
LibC | ||
LibCompress | ||
LibCore | ||
LibCpp | ||
LibCrypto | ||
LibEDID | ||
LibELF | ||
LibGfx | ||
LibGL | ||
LibIMAP | ||
LibJS | ||
LibM | ||
LibMarkdown | ||
LibPDF | ||
LibPthread | ||
LibRegex | ||
LibSQL | ||
LibTest | ||
LibTextCodec | ||
LibThreading | ||
LibTimeZone | ||
LibTLS | ||
LibTTF | ||
LibUnicode | ||
LibWasm | ||
LibWeb | ||
Spreadsheet | ||
UserspaceEmulator | ||
CMakeLists.txt |