From aab81a92613b3df1a80d554fa4a579e73f977b8c Mon Sep 17 00:00:00 2001 From: Edgar Gabriel Date: Mon, 17 May 2004 21:28:32 +0000 Subject: [PATCH] Added a function to lookup a lam_proc_t struct based on the vpid. Used currently in intercomm_create functions. Reviewed by Tim. This commit was SVN r1134. --- src/proc/proc.c | 18 ++++++++++++++++++ src/proc/proc.h | 5 +++++ 2 files changed, 23 insertions(+) diff --git a/src/proc/proc.c b/src/proc/proc.c index 401d09c7d9..64ba74329e 100644 --- a/src/proc/proc.c +++ b/src/proc/proc.c @@ -152,3 +152,21 @@ lam_proc_t** lam_proc_self(size_t* size) return procs; } +lam_proc_t * lam_proc_find ( lam_job_handle_t jobid, uint32_t vpid ) +{ + lam_proc_t *proc; + + /* return the proc-struct which matches this jobid+process id */ + THREAD_LOCK(&lam_proc_lock); + for(proc = (lam_proc_t*)lam_list_get_first(&lam_proc_list); + proc != (lam_proc_t*)lam_list_get_end(&lam_proc_list); + proc = (lam_proc_t*)lam_list_get_next(proc)) { + if( (strcmp(proc->proc_job,jobid) == 0) && + (proc->proc_vpid == vpid ) ) + { + break; + } + } + THREAD_UNLOCK(&lam_proc_lock); + return proc; +} diff --git a/src/proc/proc.h b/src/proc/proc.h index 9eb41774d0..bf4be8e9b2 100644 --- a/src/proc/proc.h +++ b/src/proc/proc.h @@ -61,5 +61,10 @@ static inline lam_proc_t* lam_proc_local(void) return lam_proc_local_proc; } +/** + * Returns the proc instance for a given vpid +*/ +lam_proc_t * lam_proc_find ( lam_job_handle_t jobid, uint32_t vpid ); + #endif /* LAM_PROC */