From 577ed9e01a83c13bf151b5137e6fe1eace1c4f7c Mon Sep 17 00:00:00 2001 From: dzwdz Date: Mon, 2 May 2022 19:25:02 +0200 Subject: syscalls: fork() noreap flag --- src/init/fs/misc.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/init/fs') diff --git a/src/init/fs/misc.c b/src/init/fs/misc.c index b962b64..ca3128d 100644 --- a/src/init/fs/misc.c +++ b/src/init/fs/misc.c @@ -53,7 +53,7 @@ static void fs_respond_delegate(struct fs_wait_response *res, handle_t delegate, switch (res->op) { case VFSOP_READ: - if (_syscall_fork()) { + if (_syscall_fork(FORK_NOREAP)) { // handle reads in a child // this is a HORRIBLE workaround for making concurrent IO work without proper delegates break; @@ -62,7 +62,7 @@ static void fs_respond_delegate(struct fs_wait_response *res, handle_t delegate, size = res->capacity < sizeof(buf) ? res->capacity : sizeof(buf); ret = _syscall_read(delegate, buf, size, res->offset); _syscall_fs_respond(buf, ret); - _syscall_exit(0); // TODO unreapable - add a nonblocking reap syscall + _syscall_exit(0); break; // TODO proper writing (see above) -- cgit v1.2.3