mirror of
https://github.com/RGBCube/serenity
synced 2025-10-29 20:32:36 +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. |
||
|---|---|---|
| .. | ||
| Superbuild | ||
| all_the_debug_macros.cmake | ||
| check_for_dependencies.cmake | ||
| code_generators.cmake | ||
| common_options.cmake | ||
| commonmark_spec.cmake | ||
| lagom-install-config.cmake | ||
| lagom_options.cmake | ||
| pnp_ids.cmake | ||
| processor-count.cmake | ||
| serenity_components.cmake | ||
| serenity_options.cmake | ||
| time_zone_data.cmake | ||
| unicode_data.cmake | ||
| utils.cmake | ||
| wasm_spec_tests.cmake | ||