ladybird/Libraries/LibThreading
Andreas Kling 656a84e180 LibThreading: Fix data race in RWLock::unlock()
The generic unlock() wrote to m_write_locked from every thread
regardless of whether a read or write lock was held. When multiple
threads held concurrent read locks, their unlock() calls would race
on the non-atomic m_write_locked and m_read_locked_with_write_lock
fields.

Split unlock() into unlock_read() and unlock_write() so that read
unlocks never touch the write-lock tracking fields. The RWLockLocker
template dispatches at compile time based on LockMode.
2026-03-07 13:09:50 +01:00
..
BackgroundAction.cpp Everywhere: Move the thread name parameter for Thread constructors 2026-01-26 15:51:46 -06:00
BackgroundAction.h LibThreading: Simplify BackgroundAction callback invocation 2026-03-02 17:06:39 -06:00
CMakeLists.txt LibThreading: Add ThreadPool class 2026-03-06 13:06:05 +01:00
ConditionVariable.h
Forward.h LibThreading: Remove WorkerThread 2026-01-26 15:51:46 -06:00
Mutex.h LibThreading: Clean up pthread mutex attributes and mutex itself 2025-02-20 15:04:50 -07:00
MutexProtected.h
RWLock.h LibThreading: Fix data race in RWLock::unlock() 2026-03-07 13:09:50 +01:00
RWLockProtected.h
Thread.cpp LibThreading: Allow configuring thread stack size 2026-03-06 13:06:05 +01:00
Thread.h LibThreading: Allow configuring thread stack size 2026-03-06 13:06:05 +01:00
ThreadPool.cpp LibThreading: Add ThreadPool class 2026-03-06 13:06:05 +01:00
ThreadPool.h LibThreading: Add ThreadPool class 2026-03-06 13:06:05 +01:00