From 04878ef74512df49803d1119c72c49cd8f1bfe10 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Mon, 10 Aug 2009 01:09:41 +0100 Subject: [process] Make it safe to call process_add() multiple times --- src/core/process.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) (limited to 'src/core') diff --git a/src/core/process.c b/src/core/process.c index 6dacd6652..9c13e0204 100644 --- a/src/core/process.c +++ b/src/core/process.c @@ -37,11 +37,18 @@ static LIST_HEAD ( run_queue ); * Add process to process list * * @v process Process + * + * It is safe to call process_add() multiple times; further calls will + * have no effect. */ void process_add ( struct process *process ) { - DBGC ( process, "PROCESS %p starting\n", process ); - ref_get ( process->refcnt ); - list_add_tail ( &process->list, &run_queue ); + if ( list_empty ( &process->list ) ) { + DBGC ( process, "PROCESS %p starting\n", process ); + ref_get ( process->refcnt ); + list_add_tail ( &process->list, &run_queue ); + } else { + DBGC ( process, "PROCESS %p already started\n", process ); + } } /** -- cgit v1.2.3-55-g7522