ladybird/Kernel/Syscalls
Tim Schumacher edbffb3c7a Kernel: Unblock SignalBlocker if a signal was just unmarked as pending
When updating the signal mask, there is a small frame where we might set
up the receiving process for handing the signal and therefore remove
that signal from the list of pending signals before SignalBlocker has a
chance to block. In turn, this might cause SignalBlocker to never notice
that the signal arrives and it will never unblock once blocked.

Track the currently handled signal separately and include it when
determining if SignalBlocker should be unblocking.
2022-07-08 22:27:38 +00:00
..
access.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
alarm.cpp Kernel: Remove unnecessary includes from Thread.h 2022-01-30 16:21:59 +01:00
anon_create.cpp Kernel: Mark sys$anon_create() as not needing the big lock 2022-03-08 00:19:49 +01:00
beep.cpp Kernel: Add CommandLine option to disable or enable the PC speaker 2022-01-23 00:40:54 +00:00
chdir.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
chmod.cpp Kernel: Mark sys$chmod() as not needing the big lock 2022-03-09 16:43:00 +01:00
chown.cpp Kernel: Remove big lock from sys$chown 2022-04-09 23:46:02 +02:00
clock.cpp Kernel: Mark sys$adjtime() as not needing the big lock 2022-04-04 00:42:18 +02:00
debug.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
disown.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
dup2.cpp Kernel: Mark sys$dup2() as not needing the big lock 2022-03-09 16:43:00 +01:00
emuctl.cpp Kernel: Mark sys$emuctl() as not needing the big lock 2022-03-09 16:43:00 +01:00
execve.cpp Kernel: Do a POSIX-correct signal handler reset on exec 2022-07-05 20:58:38 +03:00
exit.cpp Kernel: Fix a few typos 2021-10-01 00:51:49 +01:00
fcntl.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
fork.cpp Kernel: Tweak broken dbgln_if() in sys$fork() after RegionTree changes 2022-04-04 11:05:49 +02:00
fsync.cpp Kernel: Mark sys$fsync() as not needing the big lock 2022-03-08 00:19:49 +01:00
ftruncate.cpp Kernel: Mark sys$ftruncate() as not needing the big lock 2022-03-09 16:43:00 +01:00
futex.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
get_dir_entries.cpp Kernel: Convert process file descriptor table to a SpinlockProtected 2022-01-29 02:17:06 +01:00
get_stack_bounds.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
getrandom.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
getuid.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
hostname.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
inode_watcher.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ioctl.cpp Kernel: Add FIOCLEX and FIONCLEX ioctls 2022-04-26 14:32:12 +02:00
keymap.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
kill.cpp Kernel: Implement InterruptDisabler using generic Processor functions 2022-06-02 13:14:12 +01:00
link.cpp Kernel: Remove big lock from sys$symlink 2022-04-09 23:46:02 +02:00
lseek.cpp Kernel: Mark sys$lseek() as not needing the big lock 2022-03-09 16:43:00 +01:00
mkdir.cpp Kernel: Remove big lock from sys$mkdir 2022-04-09 23:46:02 +02:00
mknod.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
mmap.cpp Kernel: Implement an axallowed mount option 2022-07-08 22:27:38 +00:00
mount.cpp Kernel/FileSystem: Simplify even more the mount syscall 2022-05-29 19:31:02 +01:00
open.cpp Kernel: Don't check pledges or veil against code coverage data files 2022-05-02 01:46:18 +02:00
perf_event.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
pipe.cpp Kernel: Switch process file descriptor table from spinlock to mutex 2022-01-29 02:17:09 +01:00
pledge.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
poll.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
prctl.cpp Kernel: Replace KResult and KResultOr<T> with Error and ErrorOr<T> 2021-11-08 01:10:53 +01:00
process.cpp Kernel: Remove big lock from sys$set_coredump_metadata 2022-04-09 21:51:16 +02:00
profiling.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
ptrace.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
purge.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
read.cpp Kernel: Properly define IOV_MAX 2022-05-05 20:47:38 +02:00
readlink.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
realpath.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
rename.cpp Kernel: Remove big lock from sys$rename 2022-04-09 23:46:02 +02:00
resource.cpp Kernel: Add getrusage() syscall 2022-02-28 20:09:37 +01:00
rmdir.cpp Kernel: Remove big lock from sys$rmdir 2022-04-09 23:46:02 +02:00
sched.cpp Kernel: Mark sys$sched_{set,get}param() as not needing the big lock 2022-04-04 00:42:18 +02:00
sendfd.cpp Kernel: Mark sys$sendfd() and sys$recvfd() as not needing the big lock 2022-04-03 22:06:03 +02:00
setpgid.cpp Kernel: Implement InterruptDisabler using generic Processor functions 2022-06-02 13:14:12 +01:00
setuid.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
sigaction.cpp Kernel: Unblock SignalBlocker if a signal was just unmarked as pending 2022-07-08 22:27:38 +00:00
socket.cpp Kernel: Remove big lock from sys$setsockopt 2022-04-09 23:46:02 +02:00
stat.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
statvfs.cpp Kernel: Remove big lock from sys$statvfs 2022-04-09 23:46:02 +02:00
sync.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
sysconf.cpp Kernel: Add sysconf for IOV_MAX 2022-06-19 09:05:35 +02:00
thread.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
times.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
umask.cpp Kernel: Handle promise violations in the syscall handler 2021-12-29 18:08:15 +01:00
uname.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
unlink.cpp Kernel+LibC+LibCore: Implement the unlinkat(2) syscall 2022-04-23 10:43:32 -07:00
unveil.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
utime.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
utimensat.cpp Kernel+LibC: Implement futimens(3) 2022-05-21 18:15:00 +02:00
waitid.cpp Everywhere: Run clang-format 2022-04-01 21:24:45 +01:00
write.cpp Kernel: Properly define IOV_MAX 2022-05-05 20:47:38 +02:00