From: Martin Quinson Date: Tue, 28 Feb 2012 10:27:49 +0000 (+0100) Subject: implement a SIMIX_processes_as_dynar() function X-Git-Tag: exp_20120308~18 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/843d6086c88fc773f9fce55a3984588ea7a64394 implement a SIMIX_processes_as_dynar() function --- 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; +}