ladybird/Tests/LibCore
kleines Filmröllchen 6b13436ef6 LibCore: Introduce SharedSingleProducerCircularQueue
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.
2022-04-21 13:55:00 +02:00
..
10kb.txt LibCore: Fix relative seeking in IODevice 2021-11-30 10:51:10 +01:00
CMakeLists.txt LibCore: Introduce SharedSingleProducerCircularQueue 2022-04-21 13:55:00 +02:00
long_lines.txt LibCore: Add unit test for File::read_line 2021-06-22 18:54:40 +04:30
small.txt Tests/LibCore: Add regression test for the read_until_any_of OOB read 2022-01-01 14:44:02 +01:00
TestLibCoreArgsParser.cpp Tests: Fix TestLibCoreArgsParser with add_positional_argument API change 2021-11-26 18:57:26 -08:00
TestLibCoreDeferredInvoke.cpp Tests: Add tests for Core::deferred_invoke 2021-09-02 03:47:47 +04:30
TestLibCoreFilePermissionsMask.cpp LibCore: Improve handling of parsing errors in FilePermissionsMask 2022-01-24 07:50:32 +00:00
TestLibCoreFileWatcher.cpp Tests: Add InodeWatcher and FileWatcher tests 2021-05-12 22:38:20 +02:00
TestLibCoreIODevice.cpp Tests: Remove some temporary files when finished using them 2022-01-14 00:20:30 +01:00
TestLibCoreSharedSingleProducerCircularQueue.cpp LibCore: Introduce SharedSingleProducerCircularQueue 2022-04-21 13:55:00 +02:00
TestLibCoreStream.cpp LibCore+Everywhere: Make Core::Stream read_line() return StringView 2022-04-16 13:27:51 -04:00