Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge branch 'mc' into mc++
[simgrid.git] / src / bindings / lua / simgrid_lua.c
index 05e9584..2098267 100644 (file)
@@ -1,4 +1,4 @@
-/* Copyright (c) 2010. The SimGrid Team.
+/* Copyright (c) 2010-2014. The SimGrid Team.
  * All rights reserved.                                                     */
 
 /* This program is free software; you can redistribute it and/or modify it
@@ -148,7 +148,7 @@ static int sd_register_platform(lua_State * L)
 }
 
 /**
- * Register applicaiton for MSG
+ * Register application for MSG
  */
 static int msg_register_application(lua_State * L)
 {
@@ -158,6 +158,13 @@ static int msg_register_application(lua_State * L)
   return 0;
 }
 
+static int console_init_application(lua_State *L) {
+  MSG_function_register_default(run_lua_code);
+  SIMIX_init_application();
+  return 0;
+}
+
+
 static const luaL_Reg simgrid_functions[] = {
   {"create_environment", create_environment},
   {"launch_application", launch_application},
@@ -172,6 +179,7 @@ static const luaL_Reg simgrid_functions[] = {
   {"msg_register_platform", msg_register_platform},
   {"sd_register_platform", sd_register_platform},
   {"msg_register_application", msg_register_application},
+  {"init_application", console_init_application},
   {NULL, NULL}
 };
 
@@ -194,7 +202,7 @@ int luaopen_simgrid(lua_State *L)
   XBT_DEBUG("luaopen_simgrid *****");
 
   /* Get the command line arguments from the lua interpreter */
-  char **argv = malloc(sizeof(char *) * LUA_MAX_ARGS_COUNT);
+  char **argv = xbt_malloc(sizeof(char *) * LUA_MAX_ARGS_COUNT);
   int argc = 1;
   argv[0] = (char *) "/usr/bin/lua";    /* Lie on the argv[0] so that the stack dumping facilities find the right binary. FIXME: what if lua is not in that location? */