ladybird/Libraries
Andreas Kling 4a8683ea68 Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t
This patch implements a simple version of the futex (fast userspace
mutex) API in the kernel and uses it to make the pthread_cond_t API's
block instead of busily sched_yield().

An arbitrary userspace address is passed to the kernel as a "token"
that identifies the futex and you can then FUTEX_WAIT and FUTEX_WAKE
that specific userspace address.

FUTEX_WAIT corresponds to pthread_cond_wait() and FUTEX_WAKE is used
for pthread_cond_signal() and pthread_cond_broadcast().

I'm pretty sure I'm missing something in this implementation, but it's
hopefully okay for a start. :^)
2019-12-25 23:54:06 +01:00
..
LibAudio Build: support library and generator dependencies 2019-12-25 10:11:09 +01:00
LibC Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t 2019-12-25 23:54:06 +01:00
LibCore LibCore: compile puff.c as a separate object 2019-12-25 10:11:09 +01:00
LibDraw LibDraw: Remove bogus LibC/ prefix on SharedBuffer.h include 2019-12-25 22:50:17 +01:00
LibELF Kernel: Make kernel memory regions be non-executable by default 2019-12-25 22:41:34 +01:00
LibGUI LibGUI: Add space for sort order indicators in autosized table columns 2019-12-25 21:52:26 +01:00
LibHTML Build: support library and generator dependencies 2019-12-25 10:11:09 +01:00
LibIPC Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00
LibM Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00
LibMarkdown Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00
LibPCIDB Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00
LibProtocol LibProtocol: Make build depend on ProtocolServer for IPC endpoints 2019-12-25 14:15:28 +01:00
LibPthread Kernel+LibPthread+LibC: Add a naive futex and use it for pthread_cond_t 2019-12-25 23:54:06 +01:00
LibThread Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00
LibVT Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00
Makefile Build: clean up build system, use one shared Makefile 2019-12-20 20:20:54 +01:00