1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 13:48:12 +00:00
serenity/Kernel
Tom c4176b0da1 Kernel: Fix Lock race causing infinite spinning between two threads
We need to account for how many shared lock instances the current
thread owns, so that we can properly release such references when
yielding execution.

We also need to release the process lock when donating.
2020-12-16 23:38:17 +01:00
..
ACPI Meta: Fix ACPI_DEBUG, and always build on CI 2020-12-01 11:06:53 +01:00
API Kernel: Move InodeWatcher::Event into Kernel/API/InodeWatcherEvent 2020-12-14 23:05:53 +01:00
Arch Kernel: Change wait blocking to Process-only blocking 2020-12-12 21:28:12 +01:00
Devices Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
FileSystem Kernel: Move InodeWatcher::Event into Kernel/API/InodeWatcherEvent 2020-12-14 23:05:53 +01:00
Heap Kernel: Defer kmalloc heap contraction 2020-11-04 21:21:37 +01:00
Interrupts Kernel: Fix counting interrupts 2020-12-02 23:19:59 +01:00
Modules Kernel: Module symbol declarations for type-checking 2020-08-12 20:40:59 +02:00
Net Kernel/Net: Socket connected state change should reevaluate blocks 2020-12-13 19:15:42 +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 Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
Tasks Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Time Kernel: Add CLOCK_REALTIME support to the TimerQueue 2020-12-02 13:02:04 +01:00
TTY Kernel: Move block condition evaluation out of the Scheduler 2020-11-30 13:17:02 +01:00
VM Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +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 Kernel: List all CPUs in /proc/cpuinfo 2020-07-01 12:07:01 +02:00
CMakeLists.txt Kernel: Generate a coredump file when a process crashes 2020-12-14 23:05:53 +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: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
CoreDump.cpp Kernel: Remove harmless OOB ELF header access in core dump generation 2020-12-15 11:24:46 +01:00
CoreDump.h Kernel: Make CoreDump::m_num_program_headers const 2020-12-15 11:24:46 +01:00
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: Generate a coredump file when a process crashes 2020-12-14 23:05:53 +01:00
init.cpp Kernel: Allow passing a thread argument for new kernel threads 2020-11-30 13:17:02 +01: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+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 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: Generate a coredump file when a process crashes 2020-12-14 23:05:53 +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 Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
Lock.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +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 Kernel: Move some time related code from Scheduler into TimeManagement 2020-11-30 13:17:02 +01: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: Don't take LexicalPath as argument 2020-12-15 11:17:01 +01:00
Process.h Kernel: Generate a coredump file when a process crashes 2020-12-14 23:05:53 +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 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: Change wait blocking to Process-only blocking 2020-12-12 21:28:12 +01:00
Ptrace.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
Random.cpp Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Random.h LibCrypto: Require intent parameter in CTR constructor 2020-11-29 20:22:56 +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: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +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: 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 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: Change wait blocking to Process-only blocking 2020-12-12 21:28:12 +01:00
Thread.cpp Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
Thread.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
ThreadBlockers.cpp Kernel: Change wait blocking to Process-only blocking 2020-12-12 21:28:12 +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: Execute timer handlers outside of irq handler 2020-12-12 21:28:12 +01:00
TimerQueue.h Kernel: Fix leaking Timer instances 2020-12-11 19:33:15 +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 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 Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00
WaitQueue.h Kernel: Fix Lock race causing infinite spinning between two threads 2020-12-16 23:38:17 +01:00