+
+ /* set a finalizer that cleans simgrid, by adding to the simgrid module a
+ * dummy userdata whose __gc metamethod calls MSG_clean() */
+ lua_newuserdata(L, sizeof(void*));
+ /* simgrid udata */
+ lua_newtable(L);
+ /* simgrid udata mt */
+ lua_pushcfunction(L, simgrid_gc);
+ /* simgrid udata mt simgrid_gc */
+ lua_setfield(L, -2, "__gc");
+ /* simgrid udata mt */
+ lua_setmetatable(L, -2);
+ /* simgrid udata */
+ lua_setfield(L, -2, "__simgrid_loaded");
+ /* simgrid */