mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-26 17:40:27 +00:00
6b13436ef6
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. |
||
---|---|---|
.. | ||
10kb.txt | ||
CMakeLists.txt | ||
long_lines.txt | ||
small.txt | ||
TestLibCoreArgsParser.cpp | ||
TestLibCoreDeferredInvoke.cpp | ||
TestLibCoreFilePermissionsMask.cpp | ||
TestLibCoreFileWatcher.cpp | ||
TestLibCoreIODevice.cpp | ||
TestLibCoreSharedSingleProducerCircularQueue.cpp | ||
TestLibCoreStream.cpp |