Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Lua masterslave: simplify the code and improve the output
[simgrid.git] / examples / lua / masterslave / slave.lua
index 54e51be..bf463ae 100644 (file)
@@ -1,21 +1,25 @@
 function Slave(...)
 
+  if #arg ~= 1 then
+    error("Wrong number of arguments (got " .. #arg .. ", expected 1: slave_id)")
+  end
+
   local my_mailbox = "slave " .. arg[1]
-  simgrid.info("Hello from lua, I'm a poor slave with mbox: " .. my_mailbox)
+  simgrid.info("Hello from lua, I'm a poor slave with mailbox: " .. my_mailbox)
 
   while true do
 
-    local tk = simgrid.task.recv(my_mailbox)
-    if (simgrid.task.name(tk) == "finalize") then
-      simgrid.info("Slave '" .. my_mailbox .. "' got finalize msg")
+    local task = simgrid.task.recv(my_mailbox)
+    local task_name = task:name()
+    if (task_name == "finalize") then
+      simgrid.info("Got finalize message")
       break
     end
-    local task_name = simgrid.task.name(tk) 
-    simgrid.info("Slave '" .. my_mailbox.. "' processing " .. task_name)
-    simgrid.task.execute(tk)
-    simgrid.info("Slave '" .. my_mailbox .. "': task " .. task_name .. " done")
+    simgrid.info("Received task '" .. task_name .. "' on mailbox '" .. my_mailbox)
+    task:execute()
+    simgrid.info("Task '" .. task_name .. "' is done")
   end
 
-  simgrid.info("Slave '" .. my_mailbox .. "': I'm Done . See You !!")
+  simgrid.info("I'm done. See you!")
 end -- Slave