serenity/Kernel
Tom 78f1b5e359 Kernel: Fix some problems with Thread::wait_on and Lock
This changes the Thread::wait_on function to not enable interrupts
upon leaving, which caused some problems with page fault handlers
and in other situations. It may now be called from critical
sections, with interrupts enabled or disabled, and returns to the
same state.

This also requires some fixes to Lock. To aid debugging, a new
define LOCK_DEBUG is added that enables checking for Lock leaks
upon finalization of a Thread.
2020-12-01 09:48:34 +01:00
..
ACPI Kernel: Assume 8042 controller is present if ACPI FADT revision <= 1 2020-11-12 18:04:16 +01:00
API Kernel+LibC: Add adjtime(2) 2020-11-10 19:03:08 +01:00
Arch Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
Devices Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
FileSystem Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Heap Kernel: Defer kmalloc heap contraction 2020-11-04 21:21:37 +01:00
Interrupts Kernel: Don't remap IOAPIC registers every time we try to read/write 2020-11-01 10:30:20 +01:00
Modules
Net Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
PCI Kernel: Reduce code duplication in the PCI IO access read helpers 2020-11-01 10:19:17 +01:00
Syscalls Kernel: Fix leaking a reference on thread creation 2020-12-01 09:26:37 +01:00
Tasks Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Time Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
TTY Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
VM Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
.gitignore
Assertions.h
CMakeLists.txt Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
CMOS.cpp
CMOS.h
CommandLine.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
CommandLine.h
Console.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Console.h
DoubleBuffer.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
DoubleBuffer.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Forward.h Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
init.cpp Kernel: Allow passing a thread argument for new kernel threads 2020-11-30 13:17:02 +01:00
IO.h
KBuffer.h
KBufferBuilder.cpp AK+Kernel: Escape JSON keys & values 2020-11-02 12:56:36 +01:00
KBufferBuilder.h AK+Kernel: Escape JSON keys & values 2020-11-02 12:56:36 +01:00
kprintf.cpp
KResult.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
kstdio.h
KSyms.cpp
KSyms.h
linker.ld
Lock.cpp Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
Lock.h Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
mkmap.sh
Module.h
Multiboot.h
PerformanceEventBuffer.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
PerformanceEventBuffer.h
PhysicalAddress.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Process.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Process.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcessGroup.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ProcessGroup.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Profiling.cpp
Profiling.h
Ptrace.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp
Random.h LibCrypto: Require intent parameter in CTR constructor 2020-11-29 20:22:56 +01:00
RTC.cpp
RTC.h
Scheduler.cpp Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
Scheduler.h Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
SharedBuffer.cpp Kernel: Fix SharedBuffer reference counting on fork 2020-11-24 21:26:39 +01:00
SharedBuffer.h Kernel: Fix SharedBuffer reference counting on fork 2020-11-24 21:26:39 +01:00
SpinLock.h Kernel: Minor SpinLock improvements 2020-11-11 12:27:25 +01:00
StdLib.cpp
StdLib.h Kernel: Add checks for is_trivially_copyable to copy_to/from_user 2020-10-02 15:38:07 +02:00
Syscall.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Thread.cpp Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
Thread.h Kernel: Fix some problems with Thread::wait_on and Lock 2020-12-01 09:48:34 +01:00
ThreadBlockers.cpp Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
ThreadTracer.cpp
ThreadTracer.h
TimerQueue.cpp Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
TimerQueue.h Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01:00
UnixTypes.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h
VirtualAddress.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
WaitQueue.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
WaitQueue.h SinglyLinkedList: Remove unused includes 2020-10-08 09:54:41 +02:00