serenity/Kernel
Tom 1727b2d7cd Kernel: Fix thread joining issues
The thread joining logic hadn't been updated to account for the subtle
differences introduced by software context switching. This fixes several
race conditions related to thread destruction and joining, as well as
finalization which did not properly account for detached state and the
fact that threads can be joined after termination as long as they're not
detached.

Fixes #3596
2020-09-26 13:03:13 +02:00
..
ACPI Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
API Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Arch Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Devices Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
FileSystem Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Heap Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Interrupts Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PCI Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Syscalls Kernel: Fix thread joining issues 2020-09-26 13:03:13 +02:00
Tasks Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Time Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
TTY Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
VM Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
.gitignore Meta: Removed all gitignore in the source tree only keeping the root one 2019-06-30 10:41:26 +02:00
Assertions.h Kernel: List all CPUs in /proc/cpuinfo 2020-07-01 12:07:01 +02:00
CMakeLists.txt AK: Remove strtoull dependency from format. 2020-09-22 15:06:40 +02:00
CMOS.cpp Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
CMOS.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
CommandLine.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
CommandLine.h Kernel: Copy command line to a safe place 2020-08-25 09:48:48 +02:00
Console.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Console.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
DoubleBuffer.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
DoubleBuffer.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
Forward.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
init.cpp Kernel/USB: Start fleshing out a basic UHCI controller driver :^) 2020-09-04 21:21:41 +02:00
IO.h Kernel: Absorb LibBareMetal back into the kernel 2020-05-16 12:00:04 +02:00
KBuffer.h Kernel: Make Inode::read_entire() return a KBuffer (not ByteBuffer) 2020-08-11 20:29:14 +02:00
KBufferBuilder.cpp AK: Rename KB, MB, GB to KiB, MiB, GiB 2020-08-16 16:33:28 +02:00
KBufferBuilder.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
kprintf.cpp Kernel: Stop supporting sprintf 2020-08-22 20:55:10 +02:00
KResult.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
kstdio.h Kernel: Stop supporting sprintf 2020-08-22 20:55:10 +02:00
KSyms.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
KSyms.h Kernel: Update cryptically-named functions related to symbolication 2020-04-08 17:19:46 +02:00
linker.ld Kernel: Invoke heap constructors separately early on 2020-08-10 20:05:18 +02:00
Lock.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Lock.h AK: Add ALWAYS_INLINE, NEVER_INLINE and FLATTEN macros 2020-04-30 11:43:25 +02:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
Multiboot.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
PerformanceEventBuffer.cpp Kernel: Don't use copy_from_user() for kernelspace read in perf events 2020-08-17 09:57:18 +02:00
PerformanceEventBuffer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
PhysicalAddress.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Process.cpp Kernel: Fix thread joining issues 2020-09-26 13:03:13 +02:00
Process.h Kernel+LibC+UserspaceEmulator: Mostly add recvmsg(), sendmsg() 2020-09-17 17:23:01 +02:00
ProcessGroup.cpp Kernel: Distinguish between new and old process groups with equal pgids 2020-08-19 21:21:34 +02:00
ProcessGroup.h Kernel: Distinguish between new and old process groups with equal pgids 2020-08-19 21:21:34 +02:00
Profiling.cpp AK: Rename KB, MB, GB to KiB, MiB, GiB 2020-08-16 16:33:28 +02:00
Profiling.h Kernel: More PID/TID typing 2020-08-10 11:51:45 +02:00
Ptrace.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
Random.h Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
RTC.cpp Kernel: Minor tweak to now() computation 2020-08-26 08:52:07 +02:00
RTC.h Meta: Add license header to source files 2020-01-18 09:45:54 +01:00
Scheduler.cpp Kernel: Fix thread joining issues 2020-09-26 13:03:13 +02:00
Scheduler.h Kernel: Fix thread donation hanging the system 2020-09-15 23:30:44 +02:00
SharedBuffer.cpp Kernel: Unbreak building with extra debug macros, part 2 2020-08-30 09:43:49 +02:00
SharedBuffer.h Kernel: PID/TID typing 2020-08-10 11:51:45 +02:00
SpinLock.h Kernel: Do not wait before first attempt at locking SpinLock (#3212) 2020-08-19 11:10:53 +02:00
StdLib.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
StdLib.h Kernel+LibC+UserspaceEmulator: Mostly add recvmsg(), sendmsg() 2020-09-17 17:23:01 +02:00
Syscall.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Thread.cpp Kernel: Fix thread joining issues 2020-09-26 13:03:13 +02:00
Thread.h Kernel: Fix thread joining issues 2020-09-26 13:03:13 +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 Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
TimerQueue.h Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
UnixTypes.h Kernel+LibC+UserspaceEmulator: Add SO_TIMESTAMP, and cmsg definitions 2020-09-17 17:23:01 +02:00
UserOrKernelBuffer.cpp AK: Add StringBuilder::appendff using the new format. 2020-09-22 15:06:40 +02:00
UserOrKernelBuffer.h FileSystem: Use OutputMemoryStream instead of BufferStream. 2020-09-15 20:36:45 +02:00
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 Kernel: Dequeue dying threads from WaitQueue 2020-08-06 10:02:55 +02:00