sortix-mirror/kernel
Jonas 'Sortie' Termansen 62bd9bf901 Fix pid 1 deadlocking when exiting with children.
The child processes of pid 1 were being reparented to pid 1, causing an
infinite loop. This change fixes the problem by adding a hook that runs in
the last thread about to exit in a process. When pid 1 exits, the hook will
prevent more processes and threads from being created, and then broadcast
kill all processes and threads. The hook is not run in LastPrayer(), as that
function runs in a worker thread and it can't block waiting for another
thread to run LastPrayer() in the same thread.
2018-08-06 23:59:35 +02:00
..
disk Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
fs Fix st_blksize and st_blocks kernel values. 2018-03-31 00:55:33 +02:00
gpu/bga Add cache-aware memory mapping functions. 2017-02-19 12:13:32 +01:00
include/sortix Fix pid 1 deadlocking when exiting with children. 2018-08-06 23:59:35 +02:00
kb Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
mouse Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
net Implement getpeername(2) and getsockname(2). 2017-02-26 22:24:35 +01:00
x64 Clear the direction flag upon entry to the kernel. 2017-06-12 21:26:26 +01:00
x86 Clear the direction flag upon entry to the kernel. 2017-06-12 21:26:26 +01:00
x86-family Prioritize the interrupt worker thread. 2017-05-18 22:40:46 +02:00
.gitignore Allow bootloader bitmap framebuffer modesetting. 2016-01-08 19:56:11 +01:00
Makefile Add socket(2). 2017-02-14 20:43:31 +01:00
addralloc.cpp Fix kernel/addralloc.cpp file header comment. 2017-08-20 12:44:59 +02:00
alarm.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
clock.cpp Make interrupt work thread reliable. 2017-04-12 23:22:09 +02:00
com.cpp Fix concurrent serial port read and write. 2016-11-03 22:10:45 +01:00
com.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
copy.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
descriptor.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
dtable.cpp Check overflows in the descriptor table. 2017-04-03 18:07:23 -05:00
elf.cpp Optimize is_power_of_two. 2016-11-06 17:42:13 +01:00
end.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
fcache.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
fsfunc.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
hostname.cpp Fix kernel not using BRAND_DEFAULT_HOSTNAME. 2016-09-28 20:15:36 +02:00
identity.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
initrd.cpp Fix incompatibilities in the kernel tar extraction. 2018-03-30 23:42:37 +02:00
initrd.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
inode.cpp Fix st_blksize and st_blocks kernel values. 2018-03-31 00:55:33 +02:00
interlock.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
interrupt.cpp Prioritize the interrupt worker thread. 2017-05-18 22:40:46 +02:00
io.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
ioctx.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
kernel.cpp Fix pid 1 deadlocking when exiting with children. 2018-08-06 23:59:35 +02:00
kernelinfo.cpp Add tagline. 2016-03-26 23:50:50 +01:00
kthread.cpp Fix pid 1 deadlocking when exiting with children. 2018-08-06 23:59:35 +02:00
lfbtextbuffer.cpp Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
lfbtextbuffer.h Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
libk.cpp Seed kernel entropy with randomness from the previous boot. 2016-10-04 00:34:50 +02:00
linebuffer.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
linebuffer.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
log.cpp Add cache-aware memory mapping functions. 2017-02-19 12:13:32 +01:00
logterminal.cpp Detect whether the terminal has a display and a keyboard layout. 2016-11-23 22:31:04 +01:00
logterminal.h Add support for sessions. 2016-11-23 22:30:47 +01:00
memorymanagement.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
mtable.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
multiboot.h Upgrade to latest upstream multiboot header. 2014-12-01 22:51:07 +01:00
op-new.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
palette.h Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
panic.cpp Fix technical typo. 2017-04-08 22:20:03 +02:00
partition.cpp Fix st_blksize and st_blocks kernel values. 2018-03-31 00:55:33 +02:00
partition.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
pci-mmio.cpp Add cache-aware memory mapping functions. 2017-02-19 12:13:32 +01:00
pci.cpp Add PCI scanning functions and busmastering functions. 2017-02-19 12:10:59 +01:00
pipe.cpp Fix SEEK_END, file offset overflow, and read/write/mkpartition syscall bugs. 2017-12-04 23:56:46 +01:00
poll.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
process.cpp Fix pid 1 deadlocking when exiting with children. 2018-08-06 23:59:35 +02:00
psctl.cpp Add support for sessions. 2016-11-23 22:30:47 +01:00
ptable.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
pty.cpp Add pseudo terminals. 2016-11-23 22:31:05 +01:00
pty.h Add pseudo terminals. 2016-11-23 22:31:05 +01:00
random.cpp Seed kernel entropy with randomness from the previous boot. 2016-10-04 00:34:50 +02:00
refcount.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
registers.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
resource.cpp Add support for sessions. 2016-11-23 22:30:47 +01:00
scheduler.cpp Prioritize the interrupt worker thread. 2017-05-18 22:40:46 +02:00
segment.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
signal.cpp Add support for sessions. 2016-11-23 22:30:47 +01:00
sockopt.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
string.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
syscall.cpp Fail with ENOSYS on bad system calls. 2017-06-14 20:00:50 +01:00
textbuffer.cpp Fix operator spacing in kernel/textbuffer.cpp. 2017-04-18 23:32:00 +02:00
textterminal.cpp Fix saving and restoring console cursor position. 2017-01-22 22:28:58 +01:00
textterminal.h Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
thread.cpp Fix pid 1 deadlocking when exiting with children. 2018-08-06 23:59:35 +02:00
time.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
timer.cpp Make interrupt work thread reliable. 2017-04-12 23:22:09 +02:00
tty.cpp Add support for sessions. 2016-11-23 22:30:47 +01:00
tty.h Add support for sessions. 2016-11-23 22:30:47 +01:00
uart.cpp Add debug uart utility functions. 2016-11-27 11:18:48 +01:00
uart.h Add debug uart utility functions. 2016-11-27 11:18:48 +01:00
user-timer.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
vga.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
vga.h Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00
vgafont.f16 Allow bootloader bitmap framebuffer modesetting. 2016-01-08 19:56:11 +01:00
vgatextbuffer.cpp Support 8-bit/24-bit color and more escape codes in the graphical console. 2016-11-27 11:19:03 +01:00
vgatextbuffer.h Refactor graphical resolution changes. 2016-11-27 11:18:48 +01:00
video.cpp Refactor graphical resolution changes. 2016-11-27 11:18:48 +01:00
vnode.cpp Implement getpeername(2) and getsockname(2). 2017-02-26 22:24:35 +01:00
worker.cpp Relicense Sortix to the ISC license. 2016-03-05 22:21:50 +01:00