mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-23 17:52:26 -05: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. |
||
---|---|---|
.. | ||
Azure | ||
CMake | ||
HeaderCheck | ||
Lagom | ||
Screenshots | ||
ShellCompletions/zsh | ||
Websites | ||
bochsrc | ||
build-image-extlinux.sh | ||
build-image-grub.sh | ||
build-image-limine.sh | ||
build-image-qemu.sh | ||
build-manpages-website.sh | ||
build-native-partition.sh | ||
build-root-filesystem.sh | ||
check-ak-test-files.sh | ||
check-debug-flags.sh | ||
check-markdown.sh | ||
check-newlines-at-eof.py | ||
check-style.py | ||
check-symbols.sh | ||
check-syscall-lists.sh | ||
convert-markdown-links.lua | ||
debug-kernel.sh | ||
export-argsparser-manpages.sh | ||
extlinux.conf | ||
generate-embedded-resource-assembly.sh | ||
generate-libwasm-spec-test.py | ||
generate-libwasm-spec-test.sh | ||
grub-ebr.cfg | ||
grub-gpt.cfg | ||
grub-mbr.cfg | ||
install-ports-tree.sh | ||
limine.cfg | ||
lint-ci.sh | ||
lint-clang-format.sh | ||
lint-commit.sh | ||
lint-executable-resources.sh | ||
lint-gml-format.sh | ||
lint-keymaps.py | ||
lint-missing-resources.sh | ||
lint-ports.py | ||
lint-prettier.sh | ||
lint-python.sh | ||
lint-shell-scripts.sh | ||
new-project.sh | ||
refresh-serenity-qtcreator.sh | ||
run.sh | ||
serenity.sh | ||
serenity_gdb.py | ||
text-to-cpp-string.sh | ||
tweet-commits.js |