1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2026-01-17 21:41:00 +00:00
serenity/Kernel/VM
Tom da5cc34ebb Kernel: Fix some issues related to fixes and block conditions
Fix some problems with join blocks where the joining thread block
condition was added twice, which lead to a crash when trying to
unblock that condition a second time.

Deferred block condition evaluation by File objects were also not
properly keeping the File object alive, which lead to some random
crashes and corruption problems.

Other problems were caused by the fact that the Queued state didn't
handle signals/interruptions consistently. To solve these issues we
remove this state entirely, along with Thread::wait_on and change
the WaitQueue into a BlockCondition instead.

Also, deliver signals even if there isn't going to be a context switch
to another thread.

Fixes #4336 and #4330
2020-12-12 21:28:12 +01:00
..
AnonymousVMObject.cpp Kernel: Move all code into the Kernel namespace 2020-02-16 01:27:42 +01:00
AnonymousVMObject.h Kernel: Switch to using AK::is and AK::downcast 2020-07-26 17:51:00 +02:00
ContiguousVMObject.cpp Kernel: Allow contiguous allocations in physical memory 2020-03-08 14:13:30 +01:00
ContiguousVMObject.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
InodeVMObject.cpp Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
InodeVMObject.h Kernel: Make copy_to/from_user safe and remove unnecessary checks 2020-09-13 21:19:15 +02:00
MappedROM.h Kernel: Fix various forward declarations 2020-09-12 13:46:15 +02:00
MemoryManager.cpp Kernel: Protect the PageDirectory from concurrent access 2020-11-11 12:27:25 +01:00
MemoryManager.h Kernel: Protect the PageDirectory from concurrent access 2020-11-11 12:27:25 +01:00
PageDirectory.cpp Kernel: Switch singletons to use new Singleton class 2020-08-25 09:48:48 +02:00
PageDirectory.h Kernel: Protect the PageDirectory from concurrent access 2020-11-11 12:27:25 +01:00
PhysicalPage.cpp Kernel: Make PhysicalPage not movable and use atomic ref counting 2020-08-25 09:48:48 +02:00
PhysicalPage.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PhysicalRegion.cpp Kernel: Ensure PhysicalRegion free page hint is within valid range 2020-10-16 17:39:42 +02:00
PhysicalRegion.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PrivateInodeVMObject.cpp Kernel: Split InodeVMObject into two subclasses 2020-02-28 20:20:35 +01:00
PrivateInodeVMObject.h Kernel: Add some InodeVMObject type assertions in Region::clone() 2020-03-01 11:23:10 +01:00
ProcessPagingScope.cpp Kernel: Turn Thread::current and Process::current into functions 2020-07-01 12:07:01 +02:00
ProcessPagingScope.h Kernel: Move ProcessPagingScope to its own files 2020-03-01 15:38:09 +01:00
PurgeableVMObject.cpp Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
PurgeableVMObject.h Kernel: Switch to using AK::is and AK::downcast 2020-07-26 17:51:00 +02:00
RangeAllocator.cpp Kernel: Add locks around RangeAllocator 2020-11-11 12:27:25 +01:00
RangeAllocator.h Kernel: Add locks around RangeAllocator 2020-11-11 12:27:25 +01:00
Region.cpp Kernel: Fix some issues related to fixes and block conditions 2020-12-12 21:28:12 +01:00
Region.h Meta+Kernel: Make clang-format-10 clean 2020-09-25 21:18:17 +02:00
SharedInodeVMObject.cpp AK: Make RefPtr, NonnullRefPtr, WeakPtr thread safe 2020-11-10 19:11:52 +01:00
SharedInodeVMObject.h Kernel: Add some InodeVMObject type assertions in Region::clone() 2020-03-01 11:23:10 +01:00
TypedMapping.h Kernel: Add non-const version of TypedMapping::operator->() 2020-05-23 15:57:19 +02:00
VMObject.cpp Refactor: Replace usages of FixedArray with Vector. 2020-09-08 14:01:21 +02:00
VMObject.h Refactor: Replace usages of FixedArray with Vector. 2020-09-08 14:01:21 +02:00