X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2985a0cbd8e2894ed7b19489b5f83130ff0dc22a..a1ba88402bfb88a278d2e7c849441a9ed4a26120:/src/simix/smx_context_ruby.c diff --git a/src/simix/smx_context_ruby.c b/src/simix/smx_context_ruby.c index 27e84c114e..4051badd6e 100644 --- a/src/simix/smx_context_ruby.c +++ b/src/simix/smx_context_ruby.c @@ -11,7 +11,6 @@ #include "xbt/log.h" #include "xbt/asserts.h" -#include "bindings/smx_context.h" #include "bindings/ruby_bindings.h" XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(ruby); @@ -24,7 +23,7 @@ smx_ctx_ruby_create_context(xbt_main_func_t code, int argc, char **argv, static void smx_ctx_ruby_stop(smx_context_t context); static void smx_ctx_ruby_suspend(smx_context_t context); static void smx_ctx_ruby_resume(smx_context_t new_context); -static void smx_ctx_ruby_runall(xbt_swag_t processes); +static void smx_ctx_ruby_runall(xbt_dynar_t processes); void SIMIX_ctx_ruby_factory_init(smx_context_factory_t * factory) { @@ -72,7 +71,7 @@ static void smx_ctx_ruby_stop(smx_context_t context) ctx_ruby = (smx_ctx_ruby_t) context; - if (((smx_process_t)smx_current_context->data)->iwannadie) { + if (smx_current_context->iwannadie) { if (ctx_ruby->process) { //if the Ruby Process still Alive ,let's Schedule it @@ -111,14 +110,17 @@ static void smx_ctx_ruby_resume(smx_context_t new_context) rb_process_schedule(ctx_ruby->process); } -static void smx_ctx_ruby_runall(xbt_swag_t processes) +static void smx_ctx_ruby_runall(xbt_dynar_t processes) { smx_process_t process; smx_context_t old_context; - while ((process = xbt_swag_extract(processes))) { + unsigned int cursor; + + xbt_dynar_foreach(processes, cursor, process) { old_context = smx_current_context; smx_current_context = process->context; smx_ctx_ruby_resume(smx_current_context); smx_current_context = old_context; - } + } + xbt_dynar_reset(processes); }