From 5e1acef2070cccd9643ba9c00772b400595a75aa Mon Sep 17 00:00:00 2001 From: Matthias Kruk Date: Mon, 28 Oct 2019 00:53:51 +0900 Subject: [PATCH] Signal the receiving process in process_inbox_put() --- kernel/core/process.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/kernel/core/process.c b/kernel/core/process.c index daec1a3..7b9b8ae 100644 --- a/kernel/core/process.c +++ b/kernel/core/process.c @@ -288,6 +288,7 @@ int process_inbox_put(process_t *proc, struct cxmsg *msg) proc->p_inbox[i].sender = cproc->p_id; proc->p_inbox[i].msg = msg; + process_signal(proc->p_id); ret_val = 0; break; } @@ -322,6 +323,7 @@ struct cxmsg* process_inbox_get(pid_t from) } if(!ret_val) { + dbg_printf("[%u] waiting for pid 0x%x\n", process_get_id(proc), from); process_wait(from); } } while(!ret_val); @@ -353,6 +355,11 @@ int process_signal(pid_t pid) dproc = process_lookup(pid); if(dproc) { + process_t *cproc; + cproc = process_get_current(); + + dbg_printf("[%u] signalling pid %u\n", process_get_id(cproc), pid); + sched_signal(pid); ret_val = 0; } -- 2.47.3