ladybird/Kernel
Tom 49d5232f33 Kernel: Always return from Thread::wait_on
We need to always return from Thread::wait_on, even when a thread
is being killed. This is necessary so that the kernel call stack
can clean up and release references held by it. Then, right before
transitioning back to user mode, we check if the thread is
supposed to die, and at that point change the thread state to
Dying to prevent further scheduling of this thread.

This addresses some possible resource leaks similar to #3073
2020-08-11 14:54:36 +02:00
..
ACPI Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
API Kernel: Use Userspace<T> for the execve syscall 2020-08-10 12:52:15 +02:00
Arch Kernel: Prevent recursive calls into the scheduler 2020-08-02 17:15:11 +02:00
Devices Kernel+LibKeyboard: Store the keymap name when setting system keymap 2020-08-06 17:45:06 +02:00
FileSystem Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Heap Kernel: Include the 128 byte slab allocator in for_each_allocator 2020-08-10 20:05:18 +02:00
Interrupts Kernel: Mark MSIHandler as final 2020-08-10 09:57:50 +02:00
Modules
Net Kernel: Use Userspace<T> for the bind syscall, and implementation 2020-08-10 12:52:15 +02:00
PCI Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
Syscalls Kernel: Use Userspace<T> for the exit_thread syscall 2020-08-10 12:52:15 +02:00
Tasks Kernel: Require a reason to be passed to Thread::wait_on 2020-07-06 10:00:24 +02:00
Time
TTY Kernel: PID/PGID typing 2020-08-10 11:51:45 +02:00
VM AK: Fix overflow and mixed-signedness issues in binary_search() (#2961) 2020-08-02 21:10:35 +02:00
.gitignore
Assertions.h
CMakeLists.txt Kernel: Invoke heap constructors separately early on 2020-08-10 20:05:18 +02:00
CMOS.cpp
CMOS.h
CommandLine.cpp
CommandLine.h
Console.cpp Kernel: Make File::write() and File::read() return KResultOr<size_t> 2020-08-04 18:17:16 +02:00
Console.h Kernel: Make File::write() and File::read() return KResultOr<size_t> 2020-08-04 18:17:16 +02:00
DoubleBuffer.cpp Kernel: Make File::write() and File::read() return KResultOr<size_t> 2020-08-04 18:17:16 +02:00
DoubleBuffer.h Kernel: Make File::write() and File::read() return KResultOr<size_t> 2020-08-04 18:17:16 +02:00
Forward.h Kernel: Prevent recursive calls into the scheduler 2020-08-02 17:15:11 +02:00
init.cpp Kernel: Invoke heap constructors separately early on 2020-08-10 20:05:18 +02:00
IO.h
KBuffer.h
KBufferBuilder.cpp Kernel: Fix KBufferBuilder::append() 2020-07-05 12:26:27 +02:00
KBufferBuilder.h
kprintf.cpp AK+Kernel+LibC: Add vdbgprintf() 2020-08-06 13:36:06 +02:00
KResult.h Kernel: Decorate KResult and KResultOr<T> methods with [[nodiscard]] 2020-08-09 00:13:39 +02:00
kstdio.h LibELF+Lagom: Work towards getting LibELF in Lagom 2020-08-09 21:12:54 +02:00
KSyms.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
KSyms.h
linker.ld Kernel: Invoke heap constructors separately early on 2020-08-10 20:05:18 +02:00
Lock.cpp Kernel: Add SMP IPI support 2020-07-06 17:07:44 +02:00
Lock.h
mkmap.sh
Module.h
Multiboot.h
PerformanceEventBuffer.cpp Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
PerformanceEventBuffer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
PhysicalAddress.h
Process.cpp Kernel: Always return from Thread::wait_on 2020-08-11 14:54:36 +02:00
Process.h Kernel: Use Userspace<T> for the exit_thread syscall 2020-08-10 12:52:15 +02:00
Profiling.cpp Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Profiling.h Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Ptrace.cpp Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Ptrace.h Kernel: Move headers intended for userspace use into Kernel/API/ 2020-07-04 17:22:23 +02:00
Random.cpp Kernel: Require a reason to be passed to Thread::wait_on 2020-07-06 10:00:24 +02:00
Random.h
RTC.cpp
RTC.h
Scheduler.cpp Kernel: Always return from Thread::wait_on 2020-08-11 14:54:36 +02:00
Scheduler.h Kernel: Fix a few Thread::block related races 2020-08-03 15:59:11 +02:00
SharedBuffer.cpp Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
SharedBuffer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
SpinLock.h Kernel: Simplify the ScopedSpinLock template 2020-07-30 23:43:37 +02:00
StdLib.cpp Kernel+LibC: Implement 'memmem' 2020-08-01 08:39:26 +02:00
StdLib.h Kernel+LibC: Implement 'memmem' 2020-08-01 08:39:26 +02:00
Syscall.cpp Kernel: Use Userspace<T> for the exit_thread syscall 2020-08-10 12:52:15 +02:00
Thread.cpp Kernel: Always return from Thread::wait_on 2020-08-11 14:54:36 +02:00
Thread.h Kernel: Always return from Thread::wait_on 2020-08-11 14:54:36 +02:00
ThreadTracer.cpp Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
ThreadTracer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
TimerQueue.cpp
TimerQueue.h
UnixTypes.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
VirtualAddress.h
WaitQueue.cpp Kernel: Dequeue dying threads from WaitQueue 2020-08-06 10:02:55 +02:00
WaitQueue.h Kernel: Dequeue dying threads from WaitQueue 2020-08-06 10:02:55 +02:00