Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[Lua] Ported console code to Lua 5.3
authorChristian Heinrich <franz-christian.heinrich@inria.fr>
Thu, 23 Jul 2015 17:02:09 +0000 (19:02 +0200)
committerChristian Heinrich <franz-christian.heinrich@inria.fr>
Thu, 15 Oct 2015 17:17:18 +0000 (19:17 +0200)
examples/lua/console/master.lua
examples/lua/console/slave.lua

index 36f9785..379a79a 100644 (file)
@@ -5,28 +5,28 @@
 -- under the terms of the license (GNU LGPL) which comes with this package.
 
 --Master Function
-function Master(...) 
+function Master(...)
 
-  if #arg ~= 4 then
-    error("Wrong number of arguments (got " .. #arg ..
-          ", expected 4: nb_tasks comp_size comm_size slave_count)")
+  if select("#", ...) ~= 4 then
+    error("Wrong number of arguments (got " .. select("#", ...) ..
+        ", expected 4: nb_tasks comp_size comm_size slave_count)")
   end
 
   simgrid.info("Hello from lua, I'm the master")
-  for i,v in ipairs(arg) do
+  for i,v in ipairs({...}) do
       simgrid.info("Got " .. v)
   end
 
-  local nb_task, comp_size, comm_size, slave_count = unpack(arg)
+  local nb_task, comp_size, comm_size, slave_count = select(1, ...)
 
-  simgrid.info("Argc=" .. (#arg) .. " (should be 4)")
+  simgrid.info("Argc=" .. select("#", ...) .. " (should be 4)")
 
   -- Dispatch the tasks
 
   for i = 1, nb_task do
     task = simgrid.task.new("Task " .. i, comp_size, comm_size);
     local task_name = simgrid.task.get_name(task)
-    alias = "slave " .. (i%slave_count);
+    alias = "slave " .. string.format("%d",i%slave_count);
     simgrid.info("Master sending  '" .. task_name .. "' To '" .. alias .. "'");
     simgrid.task.send(task, alias); -- C user data set to NULL
     simgrid.info("Master done sending '" .. task_name .. "' To '" .. alias .. "'");
index b70a75a..89f5419 100644 (file)
@@ -7,11 +7,11 @@
 -- Slave Function ---------------------------------------------------------
 function Slave(...)
 
-  if #arg ~= 1 then
+  if select("#", ...) ~= 1 then
     error("Wrong number of arguments (got " .. #arg .. ", expected 1: slave_id)")
   end
 
-  local my_mailbox = "slave " .. arg[1]
+  local my_mailbox = "slave " .. select(1, ...)
   simgrid.info("Hello from lua, I'm a poor slave with mbox: " .. my_mailbox)
 
   while true do
@@ -23,7 +23,7 @@ function Slave(...)
       simgrid.info("Slave '" .. my_mailbox .. "' got finalize msg");
       break
     end
-    --local tk_name = simgrid.task.get_name(tk) 
+    --local tk_name = simgrid.task.get_name(tk)
     simgrid.info("Slave '" .. my_mailbox .. "' processing " .. task:get_name())
     simgrid.task.execute(task)
     simgrid.info("Slave '"  .. my_mailbox .. "': task " .. task:get_name() .. " done")
@@ -31,5 +31,5 @@ function Slave(...)
 
   simgrid.info("Slave '" .. my_mailbox .. "': I'm Done . See You !!");
 
-end 
+end
 -- end_of_slave