From 25447294d551bb93f63dd7e43e19b65e7c89e4db Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Wed, 25 Aug 2010 11:17:13 +0100 Subject: [PATCH] [process] Add process_running() Signed-off-by: Michael Brown --- src/core/process.c | 4 ++-- src/include/ipxe/process.h | 11 +++++++++++ 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/src/core/process.c b/src/core/process.c index d46737b04..d968febfa 100644 --- a/src/core/process.c +++ b/src/core/process.c @@ -42,7 +42,7 @@ static LIST_HEAD ( run_queue ); * have no effect. */ void process_add ( struct process *process ) { - if ( list_empty ( &process->list ) ) { + if ( ! process_running ( process ) ) { DBGC ( process, "PROCESS %p starting\n", process ); ref_get ( process->refcnt ); list_add_tail ( &process->list, &run_queue ); @@ -60,7 +60,7 @@ void process_add ( struct process *process ) { * have no effect. */ void process_del ( struct process *process ) { - if ( ! list_empty ( &process->list ) ) { + if ( process_running ( process ) ) { DBGC ( process, "PROCESS %p stopping\n", process ); list_del ( &process->list ); INIT_LIST_HEAD ( &process->list ); diff --git a/src/include/ipxe/process.h b/src/include/ipxe/process.h index 7cd5b91ac..45c2af639 100644 --- a/src/include/ipxe/process.h +++ b/src/include/ipxe/process.h @@ -66,6 +66,17 @@ process_init ( struct process *process, process_add ( process ); } +/** + * Check if process is running + * + * @v process Process + * @ret running Process is running + */ +static inline __attribute__ (( always_inline )) int +process_running ( struct process *process ) { + return ( ! list_empty ( &process->list ) ); +} + /** Permanent process table */ #define PERMANENT_PROCESSES __table ( struct process, "processes" )