From b8ee144e67e14208d05e1a9821d9c8f7b1dbc540 Mon Sep 17 00:00:00 2001 From: Balazs Gerofi Date: Fri, 26 Jan 2018 13:53:05 +0900 Subject: [PATCH] do_fork(): return -ENOMEM when no more TIDs available --- kernel/syscall.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/kernel/syscall.c b/kernel/syscall.c index e1f6e3b8..9361aed4 100644 --- a/kernel/syscall.c +++ b/kernel/syscall.c @@ -2450,13 +2450,14 @@ retry_tid: } } + mcs_rwlock_writer_unlock(&newproc->threads_lock, &lock); + /* TODO: spawn more mcexec threads */ if (!new->tid) { + release_cpuid(cpuid); kprintf("%s: no more TIDs available\n"); - panic(""); + return -ENOMEM; } - - mcs_rwlock_writer_unlock(&newproc->threads_lock, &lock); } /* fork() a new process on the host */ else {