ladybird/Kernel
Andreas Kling 0c1d41cc8a Kernel: Simplify Blockers so they don't need a "should block" flag
The `m_should_block` member variable that many of the Thread::Blocker
subclasses had was really only used to carry state from the constructor
to the immediate-unblock-without-blocking escape hatch.

This patch refactors the blockers so that we don't need to hold on
to this flag after setup_blocker(), and instead the return value from
setup_blocker() is the authority on whether the unblock conditions
are already met.
2021-08-24 16:37:28 +02:00
..
ACPI Kernel: Move Mutex into Locking/ 2021-08-07 11:48:00 +02:00
API Kernel+Userland: Remove global futexes 2021-08-17 01:21:47 +02:00
Arch Kernel: Make Processor::clean_fpu_state() static 2021-08-23 00:02:09 +02:00
Bus Kernel: Rename PCI::DeviceController => PCI::Device 2021-08-23 01:07:45 +02:00
Devices Kernel: Rename PCI::DeviceController => PCI::Device 2021-08-23 01:07:45 +02:00
FileSystem Kernel: Move Blocker setup out from constructors into setup_blocker() 2021-08-24 16:37:28 +02:00
Graphics Kernel: Rename PCI::DeviceController => PCI::Device 2021-08-23 01:07:45 +02:00
Heap Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Interrupts Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
Library Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Locking Kernel: Remove unused ScopedLockRelease class 2021-08-23 02:17:02 +02:00
Memory Kernel: Mape quickmap functions VERIFY that MM lock is held 2021-08-23 00:02:09 +02:00
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel: Simplify Blockers so they don't need a "should block" flag 2021-08-24 16:37:28 +02:00
Prekernel Meta: Add Clang support to the CMake build scripts 2021-08-08 10:55:36 +02:00
Storage Kernel: Rename PCI::DeviceController => PCI::Device 2021-08-23 01:07:45 +02:00
Syscalls Kernel: Remove unnecessary FutexQueue::did_remove() 2021-08-23 00:02:09 +02:00
Tasks Kernel: Make VirtualFileSystem::sync() static 2021-07-11 00:26:17 +02:00
Time Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
TTY Kernel: Rename Thread::BlockCondition to BlockerSet 2021-08-23 00:02:09 +02:00
AddressSanitizer.cpp Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
AddressSanitizer.h Everywhere: Use bgianf@serenityos.org for my copyright attribution 2021-04-22 21:15:54 +02:00
Assertions.h AK+Kernel: Print TODO when a TODO() is executed 2021-08-04 11:01:16 +02:00
AtomicEdgeAction.h Kernel: Add AtomicEdgeAction class 2021-07-07 21:57:01 +02:00
BootInfo.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
CMakeLists.txt Kernel: Rename PCI::DeviceController => PCI::Device 2021-08-23 01:07:45 +02:00
CMOS.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMOS.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CommandLine.cpp AK+Kernel: StringView hash map Traits should not set peek type to String 2021-08-18 10:21:19 +02:00
CommandLine.h AK+Kernel: StringView hash map Traits should not set peek type to String 2021-08-18 10:21:19 +02:00
ConsoleDevice.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ConsoleDevice.h Kernel: Make various T::class_name() and similar return StringView 2021-07-11 01:46:59 +02:00
Coredump.cpp Everywhere: Core dump => Coredump 2021-08-23 00:02:09 +02:00
Coredump.h Everywhere: Core dump => Coredump 2021-08-23 00:02:09 +02:00
Debug.h.in Kernel: Implement a ISO 9660 filesystem reader :^) 2021-08-07 15:21:58 +02:00
DoubleBuffer.cpp Kernel: Add convenience values to the Memory::Region::Access enum 2021-08-06 22:25:00 +02:00
DoubleBuffer.h Kernel+LibC: Implement FIONREAD ioctl 2021-08-22 10:29:06 +02:00
embedmap.sh Kernel: Make new kernel build process work on macOS 2021-07-15 11:04:30 +02:00
Forward.h Everywhere: Core dump => Coredump 2021-08-23 00:02:09 +02:00
FutexQueue.cpp Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
FutexQueue.h Kernel: Don't register thread as custom data for FutexBlocker 2021-08-24 01:57:11 +02:00
GlobalProcessExposed.cpp Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
init.cpp Kernel: Make Process::current() return a Process& instead of Process* 2021-08-19 23:49:53 +02:00
IO.h Kernel: Specify I/O size for BMIDEChannel 2021-06-28 15:55:00 +02:00
KBuffer.h Kernel: Add convenience values to the Memory::Region::Access enum 2021-08-06 22:25:00 +02:00
KBufferBuilder.cpp Kernel: Add convenience values to the Memory::Region::Access enum 2021-08-06 22:25:00 +02:00
KBufferBuilder.h Kernel: Remove KBufferBuilder's can_expand restriction 2021-07-20 18:05:05 +02:00
KLexicalPath.cpp Kernel: Make KLexicalPath::basename() more compliant 2021-07-11 14:10:58 +02:00
KLexicalPath.h Kernel: Add KLexicalPath::try_join and use it 2021-07-07 15:32:17 +02:00
kprintf.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
KResult.h Kernel: Stop allowing implicit conversion from KResult to int 2021-08-14 15:19:00 +02:00
kstdio.h Kernel: Introduce a StringView overload of dbgputstr(..) 2021-08-13 11:08:11 +02:00
KString.cpp Kernel: Allow passing null pointer to delete 2021-07-14 13:12:25 +02:00
KString.h Kernel: Annotate KString methods as [[nodiscard]] 2021-08-13 11:08:11 +02:00
KSyms.cpp Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
KSyms.h Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
linker.ld Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
MiniStdLib.cpp Kernel: Introduce basic pre-kernel environment 2021-07-18 17:31:13 +02:00
mkmap.sh Kernel: Use our toolchain's c++filt tool for the kernel map 2021-07-29 10:38:31 +02:00
Module.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Multiboot.h Prekernel: Export some multiboot parameters in our own BootInfo struct 2021-07-27 13:15:16 +02:00
Panic.cpp Kernel: Print panic backtrace to both the screen and serial 2021-08-04 20:14:54 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
PerformanceEventBuffer.h Kernel: Make sys$perf_register_string() generate the string ID's 2021-08-12 00:03:39 +02:00
PerformanceManager.h Kernel: Add syscall performance event type 2021-08-10 21:55:48 +02:00
PhysicalAddress.h Kernel: Move PhysicalPage classes out of the heap into an array 2021-07-08 11:43:34 +02:00
Process.cpp Kernel: Rename some BlockerSets to foo_blocker_set 2021-08-23 01:42:04 +02:00
Process.h Kernel: Rename some BlockerSets to foo_blocker_set 2021-08-23 01:42:04 +02:00
ProcessExposed.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
ProcessExposed.h Kernel+Userland: Remove chroot functionality 2021-08-15 12:44:35 +02:00
ProcessGroup.cpp Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
ProcessGroup.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
ProcessProcFSTraits.cpp Kernel: Specify directory entry types properly 2021-08-18 18:13:59 +02:00
ProcessSpecificExposed.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Random.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
Random.h Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
RTC.cpp Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
RTC.h Kernel: Ensure we read valid values from the RTC CMOS registers 2021-08-04 19:53:04 +02:00
SanCov.cpp Kernel: Convert Processor::in_irq() to static current_in_irq() 2021-08-23 00:02:09 +02:00
Scheduler.cpp Kernel: Rename Processor::id() => current_id() 2021-08-23 00:02:09 +02:00
Scheduler.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00
Sections.h Kernel: Support loading the kernel at almost arbitrary virtual addresses 2021-07-27 13:15:16 +02:00
StdLib.cpp Kernel: Remove copy_string_from_user() as it's no longer used 2021-08-15 12:44:35 +02:00
StdLib.h Kernel: Remove copy_string_from_user() as it's no longer used 2021-08-15 12:44:35 +02:00
Syscall.cpp Kernel: Stop allowing implicit conversion from KResult to int 2021-08-14 15:19:00 +02:00
Thread.cpp Kernel: Rename some BlockerSets to foo_blocker_set 2021-08-23 01:42:04 +02:00
Thread.h Kernel: Simplify Blockers so they don't need a "should block" flag 2021-08-24 16:37:28 +02:00
ThreadBlockers.cpp Kernel: Simplify Blockers so they don't need a "should block" flag 2021-08-24 16:37:28 +02:00
ThreadTracer.cpp Kernel: Remove unused header includes in root kernel tree 2021-07-11 21:37:38 +02:00
ThreadTracer.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
TimerQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
TimerQueue.h Kernel: Do not cancel stale timers when servicing sys$alarm 2021-08-03 18:44:01 +02:00
UBSanitizer.cpp Kernel: Pull apart CPU.h 2021-06-24 00:38:23 +02:00
UnixTypes.h Kernel: Move {Process,Thread,Session,ProcessGroup}ID to Kernel/Forward.h 2021-08-14 19:58:11 +02:00
UserOrKernelBuffer.cpp Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
UserOrKernelBuffer.h Kernel: Move Kernel/Memory/ code into Kernel::Memory namespace 2021-08-06 14:05:58 +02:00
VirtualAddress.h Kernel: Make VirtualAddress::page_base() work with 64-bit addresses 2021-07-18 17:31:13 +02:00
WaitQueue.cpp Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WaitQueue.h Kernel: Don't register thread as custom data for WaitQueueBlocker 2021-08-24 01:57:11 +02:00
WorkQueue.cpp Kernel: Rename ScopedSpinlock => SpinlockLocker 2021-08-22 03:34:10 +02:00
WorkQueue.h Kernel: Rename SpinLock => Spinlock 2021-08-22 03:34:10 +02:00