ladybird/Kernel
Linus Groh 057ae36e32 Kernel: Prevent threads from being destructed between die() and finalize()
Killing remaining threads already happens in Process::die(), but
coredumps are only written in Process::finalize(). We need to keep a
reference to each of those threads to prevent them from being destructed
between those two functions, otherwise coredumps will only ever contain
information about the last remaining thread.

Fixes the underlying problem of #4778, though the UI will need
refinements to not show every thread's backtrace mashed together.
2021-01-15 23:26:47 +01:00
..
ACPI AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
API Kernel: Add anonymous files, created with sys$anon_create() 2021-01-15 13:56:47 +01:00
Arch Everywhere: Replace a bundle of dbg with dbgln. 2021-01-11 11:55:47 +01:00
Devices Kernel: Make Process::allocate_region*() return KResultOr<Region*> 2021-01-15 19:10:30 +01:00
FileSystem Kernel: Make Process::allocate_region*() return KResultOr<Region*> 2021-01-15 19:10:30 +01:00
Heap Everywhere: Replace a bundle of dbg with dbgln. 2021-01-11 11:55:47 +01:00
Interrupts Everywhere: Replace a bundle of dbg with dbgln. 2021-01-11 11:55:47 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
PCI Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
Storage AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Syscalls Kernel: Make Process::allocate_region*() return KResultOr<Region*> 2021-01-15 19:10:30 +01:00
Tasks AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Time Kernel: Convert a bunch of String::format() => String::formatted() 2021-01-11 22:07:01 +01:00
TTY Kernel: Only send SIGTTOU if TTY termios has TOSTOP flag 2021-01-11 22:40:40 +01:00
VM AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01: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 Everywhere: Switch from (void) to [[maybe_unused]] (#4473) 2020-12-21 00:09:48 +01:00
CMakeLists.txt Kernel: Add anonymous files, created with sys$anon_create() 2021-01-15 13:56:47 +01: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: Add a method to determine the desired permissions of a Device 2020-12-27 23:07:44 +01:00
CoreDump.cpp Kernel+LibELF+LibCoreDump+CrashReporter: Use JSON for ProcessInfo 2021-01-15 23:26:47 +01:00
CoreDump.h Kernel: Embed a Metadata notes entry in coredumps 2020-12-30 16:28:27 +01:00
DoubleBuffer.cpp Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
DoubleBuffer.h Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
Forward.h Kernel: Generate a coredump file when a process crashes 2020-12-14 23:05:53 +01:00
init.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
IO.h Kernel: Convert a bunch of String::format() => String::formatted() 2021-01-11 22:07:01 +01:00
KBuffer.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
KBufferBuilder.cpp Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
KBufferBuilder.h Kernel: Improve ProcFS behavior in low memory conditions 2021-01-03 22:12:19 +01:00
kprintf.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
KResult.h Everywhere: Re-format with clang-format-11 2020-12-31 21:51:00 +01:00
kstdio.h LibC: Enable compiler warnings for printf format strings 2020-12-26 10:05:50 +01:00
KSyms.cpp Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01: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 AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Lock.h Kernel: Make Locker remember whether the lock is held 2021-01-15 08:12:08 +01:00
LockMode.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01: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 AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
PerformanceEventBuffer.h Kernel+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
PhysicalAddress.h Everywhere: Replace a bundle of dbg with dbgln. 2021-01-09 21:11:09 +01:00
Process.cpp Kernel: Prevent threads from being destructed between die() and finalize() 2021-01-15 23:26:47 +01:00
Process.h Kernel: Prevent threads from being destructed between die() and finalize() 2021-01-15 23:26:47 +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
Ptrace.cpp Kernel: Release scheduler_lock in ptrace once we know tracee is stopped 2021-01-02 11:52:19 +01:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
Random.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01: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+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
Scheduler.h Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
SharedBuffer.cpp Kernel: Make Process::allocate_region*() return KResultOr<Region*> 2021-01-15 19:10:30 +01:00
SharedBuffer.h Kernel: Merge PurgeableVMObject into AnonymousVMObject 2021-01-01 23:43:44 +01:00
SpinLock.h Kernel: Tag more methods and types as [[nodiscard]] 2020-12-27 11:09:30 +01: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: Add checks for is_trivially_copyable to copy_to/from_user 2020-10-02 15:38:07 +02:00
Syscall.cpp Kernel: Don't allow modifying IOPL via sys$ptrace() or sys$sigreturn() 2020-12-22 19:38:25 +01:00
Thread.cpp Kernel: Make Process::allocate_region*() return KResultOr<Region*> 2021-01-15 19:10:30 +01:00
Thread.h AK: Simplify constructors and conversions from nullptr_t 2021-01-12 09:11:45 +01:00
ThreadBlockers.cpp Kernel: Consolidate the various BlockCondition::unblock variants 2020-12-30 13:23:17 +01: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: Improve time keeping and dramatically reduce interrupt load 2020-12-21 18:26:12 +01:00
TimerQueue.h Kernel: Specify default memory order for some non-synchronizing Atomics 2021-01-04 19:13:52 +01:00
UnixTypes.h Kernel+Profiler: Make profiling per-process and without core dumps 2021-01-11 11:36:00 +01:00
UnveilNode.h Kernel: Allow 'elevating' unveil permissions if implicitly inherited from '/' 2020-12-26 16:10:04 +01: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 AK: Add Formatter<FormatString> as helper class. 2021-01-09 21:11:09 +01:00
WaitQueue.cpp Everywhere: Fix more typos 2020-12-31 01:47:41 +01:00
WaitQueue.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00