From 843d6086c88fc773f9fce55a3984588ea7a64394 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Tue, 28 Feb 2012 11:27:49 +0100 Subject: [PATCH] implement a SIMIX_processes_as_dynar() function --- include/simix/context.h | 1 + src/simix/smx_process.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/include/simix/context.h b/include/simix/context.h index 1b6eccb2b8..9408c19125 100644 --- a/include/simix/context.h +++ b/include/simix/context.h @@ -97,6 +97,7 @@ XBT_PUBLIC(void) *smx_ctx_base_get_data(smx_context_t context); XBT_PUBLIC(xbt_dynar_t) SIMIX_process_get_runnable(void); XBT_PUBLIC(smx_process_t) SIMIX_process_from_PID(int PID); +XBT_PUBLIC(xbt_dynar_t) SIMIX_processes_as_dynar(void); /* parallelism */ XBT_PUBLIC(int) SIMIX_context_is_parallel(void); diff --git a/src/simix/smx_process.c b/src/simix/smx_process.c index e830985671..7c54b7af0f 100644 --- a/src/simix/smx_process.c +++ b/src/simix/smx_process.c @@ -662,3 +662,13 @@ smx_process_t SIMIX_process_from_PID(int PID) } return NULL; } + +/** @brief returns a dynar containg all currently existing processes */ +xbt_dynar_t SIMIX_processes_as_dynar(void) { + smx_process_t proc; + xbt_dynar_t res = xbt_dynar_new(sizeof(smx_process_t),NULL); + xbt_swag_foreach(proc, simix_global->process_list) { + xbt_dynar_push(res,&proc); + } + return res; +} -- 2.20.1