1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-16 16:44:57 +00:00
serenity/Meta/CMake
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
..
Superbuild Everywhere: Fix spelling mistakes 2022-01-07 15:44:42 +01:00
all_the_debug_macros.cmake LibCore: Introduce SharedSingleProducerCircularQueue 2022-04-21 13:55:00 +02:00
check_for_dependencies.cmake Meta: Error out on find_program errors with CMake less than 3.18 2022-03-19 15:01:22 -07:00
code_generators.cmake CMake: Modify include path when building from Hack Studio 2022-03-19 22:02:44 +01:00
common_options.cmake CMake: Add HACKSTUDIO_BUILD option for building from Hack Studio 2022-01-12 14:55:19 +01:00
commonmark_spec.cmake Everywhere: Move commonmark.spec.json to /home/anon/Tests 2022-03-20 22:20:59 +01:00
lagom-install-config.cmake Lagom: Add proper install rules 2021-07-29 21:46:25 +01:00
lagom_options.cmake CMake: Allow building fuzzing targets without libFuzzer or OSS-Fuzz 2022-03-31 22:11:04 -07:00
pnp_ids.cmake LibEDID: Do not check if ${PNP_IDS_EXPORT_PATH} exists in pnp_ids.cmake 2022-01-26 16:37:38 +01:00
processor-count.cmake Meta: Read MAKEJOBS to limit jobs for ninja in serenity.sh 2022-03-08 17:12:35 +01:00
serenity_components.cmake Meta: Fix typos 2021-10-01 01:06:40 +01:00
serenity_options.cmake Toolchain: Add support for building the userland with the mold linker 2022-01-24 10:41:47 +00:00
time_zone_data.cmake Meta: Specify -z when decompressing tar.gz archives 2022-03-27 12:17:59 -07:00
unicode_data.cmake LibUnicode: Upgrade to CLDR version 41.0.0 2022-04-07 08:29:10 -04:00
utils.cmake CMake: Add serenity_lib_static 2022-03-24 03:04:57 +01:00
wasm_spec_tests.cmake Meta: Do not try to unzip the already decompressed WASM test suite .tar 2022-03-29 00:00:36 +02:00