ladybird/Userland
Sergey Bugaev 690141ff8b LibPthread: Reimplement semaphores
This implementation does not use locking or condition variables
internally; it's purely based on atomics and futexes.

Notably, concurrent sem_wait() and sem_post() calls can run *completely
in parallel* without slowing each other down, as long as there are empty
slots for them all to succeed without blocking.

Additionally, sem_wait() never executes an atomic operation with release
ordering, and sem_post() never executes an atomic operation with acquire
ordering (unless you count the syscall). This means the compiler and the
hardware are free to reorder code *into* the critical section.
2021-07-05 20:26:01 +02:00
..
Applets Everywhere: Add component declarations 2021-06-17 11:03:51 +02:00
Applications Piano: Use AudioServer instead of /dev/audio for audio 2021-07-05 19:33:55 +02:00
Demos Fire: Make the main widget a GUI::Frame 2021-07-05 02:38:31 +02:00
DevTools LibJS: Rewrite most of Object for spec compliance :^) 2021-07-04 22:07:36 +01:00
DynamicLoader DynamicLoader: Remove -fbuilding-libgcc hack 2021-07-04 00:35:35 +02:00
Games Games: Add Spider 2021-06-24 10:32:53 +02:00
Libraries LibPthread: Reimplement semaphores 2021-07-05 20:26:01 +02:00
Services WindowServer: Fix crash removing modal windows 2021-07-05 19:31:48 +02:00
Shell Everywhere: Prefer using "..."sv over StringView { "..." } 2021-07-04 14:24:03 +02:00
Utilities LibJS: Rewrite most of Object for spec compliance :^) 2021-07-04 22:07:36 +01:00
CMakeLists.txt Tests: Establish root Tests directory, move Userland/Tests there 2021-05-06 17:54:28 +02:00