ladybird/Kernel/Syscalls
Idan Horowitz e38ccebfc8 Kernel: Stop swallowing thread unblocks while process is stopped
This easily led to kernel deadlocks if the stopped thread held an
important global mutex (like the disk cache lock) while blocking.
Resolve this by ensuring stopped threads have a chance to return to the
userland boundary before actually stopping.
2024-02-10 08:42:53 +01:00
..
alarm.cpp Kernel: Move TimerQueue code to the Time subdirectory 2023-06-04 21:32:34 +02:00
anon_create.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
chdir.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
chmod.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
chown.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
clock.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
debug.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
disown.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
dup2.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
emuctl.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
execve.cpp Kernel: Protect processes' master TLS with a fine-grained spinlock 2023-12-26 19:20:21 +01:00
exit.cpp Kernel: Move Performance-measurement code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
faccessat.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
fallocate.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00
fcntl.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
fork.cpp Kernel: Protect processes' master TLS with a fine-grained spinlock 2023-12-26 19:20:21 +01:00
fsync.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
ftruncate.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00
futex.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
get_dir_entries.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
get_stack_bounds.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
getrandom.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
getuid.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
hostname.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
inode_watcher.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
ioctl.cpp Kernel: Mark sys$ioctl as not needing the big process lock 2023-12-26 19:20:21 +01:00
jail.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
keymap.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
kill.cpp Kernel: Don't allocate memory for names of processes and threads 2023-08-09 21:06:54 -06:00
link.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
lseek.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
mkdir.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
mknod.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
mmap.cpp Kernel: Protect processes' master TLS with a fine-grained spinlock 2023-12-26 19:20:21 +01:00
mount.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
open.cpp Kernel+ProfileViewer: Display additional filesystem events 2023-09-09 11:26:51 -06:00
perf_event.cpp Kernel: Move Performance-measurement code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
pipe.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
pledge.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
poll.cpp Kernel: Mark sys$poll as not needing the big lock 2023-08-01 05:35:26 +02:00
prctl.cpp Kernel+Userland: Remove the {get,set}_thread_name syscalls 2023-08-25 11:51:52 +02:00
process.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
profiled_syscalls.cpp Kernel+ProfileViewer: Display additional filesystem events 2023-09-09 11:26:51 -06:00
profiling.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00
ptrace.cpp Kernel: Stop locking the scheduler spinlock before the ptrace mutex 2024-02-10 08:42:53 +01:00
purge.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
read.cpp Kernel+ProfileViewer: Display additional filesystem events 2023-09-09 11:26:51 -06:00
readlink.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
realpath.cpp Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
rename.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
resource.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
rmdir.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
sched.cpp Kernel: Add jail semantics to methods iterating over thread lists 2023-09-15 11:06:48 -06:00
sendfd.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
setpgid.cpp Kernel: Move TTY-related code to a new subdirectory under Devices 2023-09-09 12:08:59 -06:00
setuid.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
sigaction.cpp Kernel: Shrink instead of expand sigaltstack range to page boundaries 2023-12-24 16:11:35 +01:00
socket.cpp Kernel: Mark sys$getsockname as not needing the big process lock 2023-12-26 19:20:21 +01:00
stat.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
statvfs.cpp Kernel/FileSystem: Rename block_size -> logical_block_size 2023-07-28 14:51:07 +02:00
sync.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
SyscallHandler.cpp Kernel: Stop swallowing thread unblocks while process is stopped 2024-02-10 08:42:53 +01:00
sysconf.cpp Kernel: Add new sysconf option _SC_GETGR_R_SIZE_MAX 2024-01-06 04:59:50 -07:00
thread.cpp Kernel: Mark sys$kill_thread as not needing the big process lock 2023-12-26 19:20:21 +01:00
times.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
umask.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
uname.cpp Kernel/riscv64: Make the kernel compile 2023-11-10 15:51:31 -07:00
unlink.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
unveil.cpp Kernel: Use FixedStringBuffer for fixed-length strings in syscalls 2023-08-09 21:06:54 -06:00
utime.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
utimensat.cpp Everywhere: Move global Kernel pattern code to Kernel/Library directory 2023-06-04 21:32:34 +02:00
waitid.cpp Kernel: Move all tasks-related code to the Tasks subdirectory 2023-06-04 21:32:34 +02:00
write.cpp Kernel+LibC: Pass 64-bit integers in syscalls by value 2023-08-12 01:14:26 +02:00