ladybird/Kernel
Brian Gianforcaro 77f4f6e0de Kernel: Fix error propagation if Thread::WaitBlocker constructor fails
There is logic at the end of the constructor that sets m_should_block
to false if we encountered errors. We were missing this step due to the
erroneous early return, the code then ended up waiting and then
asserting on unblock since the WaitBlocker is in a invalid state.

This fix is to not return early, and let normal control flow handle it.

Fixes: #7857

Verified with `stress-ng --yield=10` locally.
2021-06-07 09:43:30 +02:00
..
ACPI Kernel/ACPI: Sprinkle links to the specification all over 2021-05-31 19:06:46 +01:00
API Kernel: Add statvfs & fstatvfs Syscalls 2021-05-19 21:33:29 +02:00
Arch Kernel: Allow building the kernel with -O0 2021-05-28 19:52:22 +01:00
Devices Kernel: Fix crash when switching to console 5 & 6 2021-05-31 17:42:21 +01:00
FileSystem Kernel: Implement offset for lseek with SEEK_END 2021-06-04 23:49:48 +02:00
Graphics Kernel: Use IO ports instad of MMIO with Bochs graphics in VirtualBox 2021-06-04 13:02:32 +02:00
Heap Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
Interrupts AK+Kernel: Disallow implicitly lifting pointers to OwnPtr's 2021-05-31 17:09:12 +04:30
Modules Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Net Kernel: Return EPIPE when trying to write to an unconnected socket 2021-06-05 22:11:49 +02:00
PCI Kernel/PCI: Fix support of multiple PCI host controllers enumeration 2021-05-21 17:58:53 +01:00
Storage Documentation: Add explanation about AHCI locking 2021-05-31 18:28:25 +01:00
Syscalls Kernel: Switch Process to InstrusiveList from InlineLinkedList 2021-06-07 09:42:55 +02:00
Tasks Kernel: Pass trampolines instead of lambdas to create_kernel_process 2021-05-27 10:21:30 +02:00
Time Kernel: Fix return value for {enable,disable}_profile_timer() 2021-05-17 21:53:04 +02:00
TTY Kernel: Perform output processing on echo 2021-06-05 13:01:39 +02:00
VirtIO AK+Kernel: Disallow implicitly lifting pointers to OwnPtr's 2021-05-31 17:09:12 +04:30
VM Kernel: Avoid allocations in the VMObject constructor 2021-06-02 23:00:14 +01: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 Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
CMakeLists.txt AK: Allow inlining ref-count functionality 2021-06-03 08:06:51 +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 Kernel: Fix "sv" being inside of "no-fbdev" instead of outside 2021-06-03 17:08:06 +02:00
CommandLine.h Kernel: Move CommandLine API to use AK::StringView instead of AK::String 2021-05-31 14:04:00 +04:30
ConsoleDevice.cpp Kernel: Rename instances of IO port 0xe9 to BOCHS_DEBUG_PORT 2021-05-31 19:06:13 +01:00
ConsoleDevice.h Kernel: Rename Console => ConsoleDevice 2021-05-16 19:58:33 +02:00
CoreDump.cpp Kernel: Unnamed regions still need a null-terminator in core dumps 2021-05-30 20:00:03 +02:00
CoreDump.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Debug.h.in Kernel/Graphics: Remove unnecessary derived FramebufferDevice classes 2021-05-27 22:39:13 +02:00
DMI.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DMI.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
DoubleBuffer.cpp Kernel: Don't update write_pos in DoubleBuffer if userspace copy fails 2021-05-18 16:47:26 +02:00
DoubleBuffer.h Kernel: Implement peek() function for DoubleBuffer 2021-04-29 08:09:53 +02:00
Forward.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
FutexQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
FutexQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
init.cpp Kernel: Add KString::must_{..} factory methods 2021-05-31 14:50:49 +04:30
IO.h Kernel: Rename instances of IO port 0xe9 to BOCHS_DEBUG_PORT 2021-05-31 19:06:13 +01:00
KBuffer.h Kernel: Make KBuffer APIs OOM safe 2021-05-29 09:04:05 +02:00
KBufferBuilder.cpp Kernel: Replace make<T>() with adopt_own_if_nonnull() in KBufferBuilder 2021-05-13 16:21:53 +02:00
KBufferBuilder.h Kernel: Avoid allocations in KBufferBuilder::appendff 2021-05-13 08:27:42 +02:00
kprintf.cpp Kernel: Support new lines when doing critical printing 2021-06-03 16:16:22 +01:00
KResult.h Kernel: Add missing AK/Format.h include in KResult.h 2021-05-28 09:37:09 +02:00
kstdio.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
KString.cpp Kernel: Add operator delete for KString 2021-06-02 22:59:39 +01:00
KString.h Kernel: Add operator delete for KString 2021-06-02 22:59:39 +01:00
KSyms.cpp Kernel: Check kernel symbol's name length matches searched name 2021-04-28 22:14:32 +02:00
KSyms.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
linker.ld Kernel: Define a KERNEL_VIRTUAL_BASE in the linker script 2021-03-04 18:25:01 +01:00
Lock.cpp Kernel: Utilize AK::SourceLocation for LOCK_DEBUG instrumentation. 2021-04-25 09:38:27 +02:00
Lock.h Kernel: Add ScopedLockRelease to temporarily release a Lock 2021-05-25 10:35:41 +02:00
LockMode.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
mkmap.sh Build: Switch to CMake :^) 2020-05-14 20:15:18 +02:00
Module.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Multiboot.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Panic.cpp Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
Panic.h Kernel/Graphics + SystemServer: Support text mode properly 2021-05-16 19:58:33 +02:00
PerformanceEventBuffer.cpp Kernel: Make PerformanceEventBuffer creation API OOM safe 2021-05-29 09:04:05 +02:00
PerformanceEventBuffer.h Kernel: Add support for profiling kmalloc()/kfree() 2021-05-19 22:51:42 +02:00
PerformanceManager.h Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
PhysicalAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Process.cpp Kernel: Switch Process to InstrusiveList from InlineLinkedList 2021-06-07 09:42:55 +02:00
Process.h Kernel: Switch Process to InstrusiveList from InlineLinkedList 2021-06-07 09:42:55 +02:00
ProcessGroup.cpp Kernel: Switch ProcessGroup to IntrusiveList from InlineLinkedList 2021-06-03 13:27:40 +02:00
ProcessGroup.h Kernel: Switch ProcessGroup to IntrusiveList from InlineLinkedList 2021-06-03 13:27:40 +02:00
Random.cpp Kernel: Remove the now defunct LOCKER(..) macro. 2021-04-25 09:38:27 +02:00
Random.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
RTC.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
Scheduler.cpp Kernel: Don't finalize a thread while it still has code running 2021-06-06 15:58:48 +02:00
Scheduler.h Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
SpinLock.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
StdLib.cpp Kernel: Add try_copy_kstring_from_user() 2021-05-28 09:37:09 +02:00
StdLib.h Kernel: Add try_copy_kstring_from_user() 2021-05-28 09:37:09 +02:00
Syscall.cpp Kernel: Make sure we free the thread stack on thread exit 2021-05-29 15:53:08 +02:00
Thread.cpp Kernel: Don't finalize a thread while it still has code running 2021-06-06 15:58:48 +02:00
Thread.h Kernel: Don't log profile data before/after the process/thread lifetime 2021-05-30 19:03:03 +02:00
ThreadBlockers.cpp Kernel: Fix error propagation if Thread::WaitBlocker constructor fails 2021-06-07 09:43:30 +02:00
ThreadTracer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
ThreadTracer.h Kernel: Make Process::start_tracing_from API OOM safe 2021-05-13 16:21:53 +02:00
TimerQueue.cpp Kernel: Remove an allocation when blocking a thread 2021-05-20 09:09:10 +02:00
TimerQueue.h Kernel: Remove an allocation when blocking a thread 2021-05-20 09:09:10 +02:00
UBSanitizer.cpp Kernel+AK: Move UBSanitizer to AK, and to AK namespace 2021-05-27 15:18:03 +02:00
UnixTypes.h LibC: Define MSG_OOB 2021-06-04 10:39:41 +02:00
UnveilNode.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.cpp Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
UserOrKernelBuffer.h Kernel: Make UserOrKernelBuffer R/W helpers return KResultOr<size_t> 2021-05-13 23:28:40 +02:00
VirtualAddress.h Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
WaitQueue.cpp Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WaitQueue.h Everywhere: Use "the SerenityOS developers." in copyright headers 2021-04-29 00:59:26 +02:00
WorkQueue.cpp Kernel: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00
WorkQueue.h Kernel: Use plain Function objects for the WorkQueue 2021-05-19 21:36:57 +02:00