Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Completely remove ruby and java from simgrid project.
[simgrid.git] / src / simix / smx_context_ruby.c
diff --git a/src/simix/smx_context_ruby.c b/src/simix/smx_context_ruby.c
deleted file mode 100644 (file)
index 07739f5..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-/* context_Ruby - implementation of context switching with/for ruby         */
-
-/* Copyright (c) 2010. The SimGrid Team.
- * All rights reserved.                                                     */
-
-/* This program is free software; you can redistribute it and/or modify it
- * under the terms of the license (GNU LGPL) which comes with this package. */
-
-#include "xbt/function_types.h"
-#include "xbt/sysdep.h"
-#include "xbt/log.h"
-#include "xbt/asserts.h"
-
-#include "bindings/ruby_bindings.h"
-
-XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(ruby);
-
-static smx_context_t
-smx_ctx_ruby_create_context(xbt_main_func_t code, int argc, char **argv,
-    void_pfn_smxprocess_t cleanup_func,
-    void *data);
-
-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_dynar_t processes);
-
-void SIMIX_ctx_ruby_factory_init(smx_context_factory_t * factory)
-{
-  smx_ctx_base_factory_init(factory);
-
-  (*factory)->create_context = smx_ctx_ruby_create_context;
-  /* Do not overload that method (*factory)->finalize */
-  /* Do not overload that method (*factory)->free */
-  (*factory)->stop = smx_ctx_ruby_stop;
-  (*factory)->suspend = smx_ctx_ruby_suspend;
-  (*factory)->name = "smx_ruby_context_factory";
-  (*factory)->runall = smx_ctx_ruby_runall;
-  ruby_init();
-  ruby_init_loadpath();
-}
-
-static smx_context_t
-smx_ctx_ruby_create_context(xbt_main_func_t code, int argc, char **argv,
-    void_pfn_smxprocess_t cleanup_func, void *data)
-{
-
-  smx_ctx_ruby_t context = (smx_ctx_ruby_t)
-      smx_ctx_base_factory_create_context_sized(sizeof(s_smx_ctx_ruby_t),
-                                                code, argc, argv,
-                                                cleanup_func, data);
-
-  /* if the user provided a function for the process , then use it
-     Otherwise it's the context for maestro */
-  if (code) {
-    context->process = (VALUE) code;
-
-    XBT_DEBUG("smx_ctx_ruby_create_context(%s)...Done", argv[0]);
-  }
-  
-  return (smx_context_t) context;
-}
-
-static void smx_ctx_ruby_stop(smx_context_t context)
-{
-  XBT_DEBUG("smx_ctx_ruby_stop()");
-  VALUE process = Qnil;
-  smx_ctx_ruby_t ctx_ruby, current;
-
-  smx_ctx_base_stop(context);
-
-  ctx_ruby = (smx_ctx_ruby_t) context;
-
-  if (smx_current_context->iwannadie) {
-    if (ctx_ruby->process) {
-
-      //if the Ruby Process still Alive ,let's Schedule it
-      if (rb_process_isAlive(ctx_ruby->process)) {
-
-        current = (smx_ctx_ruby_t) smx_current_context;
-        rb_process_schedule(current->process);
-        process = ctx_ruby->process;
-        // interupt/kill The Ruby Process
-        rb_process_kill_up(process);
-      }
-    }
-  } else {
-
-    if (ctx_ruby->process)
-      ctx_ruby->process = Qnil;
-
-  }
-}
-
-static void smx_ctx_ruby_suspend(smx_context_t context)
-{
-
-  XBT_DEBUG("smx_ctx_ruby_suspend(%s)", context->argv[0]);
-  smx_ctx_ruby_t ctx_ruby = (smx_ctx_ruby_t) context;
-  if (ctx_ruby->process)
-    rb_process_unschedule(ctx_ruby->process);
-}
-
-static void smx_ctx_ruby_resume(smx_context_t new_context)
-{
-  XBT_DEBUG("smx_ctx_ruby_resume(%s)",
-         (new_context->argc ? new_context->argv[0] : "maestro"));
-
-  smx_ctx_ruby_t ctx_ruby = (smx_ctx_ruby_t) new_context;
-  rb_process_schedule(ctx_ruby->process);
-}
-
-static void smx_ctx_ruby_runall(xbt_dynar_t processes)
-{
-  smx_process_t process;
-  smx_context_t old_context;
-  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);
-}