-
-
--- Slave Function ---------------------------------------------------------
function Slave(...)
-local my_mailbox="slave "..arg[1]
-simgrid.info("Hello from lua, I'm a poor slave with mbox: "..my_mailbox)
+ 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 mailbox: " .. my_mailbox)
-while true do
+ 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");
- break
+ local task = simgrid.task.recv(my_mailbox)
+ local task_name = task:get_name()
+ if (task_name == "finalize") then
+ simgrid.info("Got finalize message")
+ break
+ end
+ simgrid.info("Received task '" .. task_name .. "' on mailbox '" .. my_mailbox .. "'")
+ task:execute()
+ simgrid.info("Task '" .. task_name .. "' is done")
end
- --local tk_name = simgrid.Task.name(tk)
- simgrid.info("Slave '" ..my_mailbox.."' processing "..simgrid.Task.name(tk))
- simgrid.Task.execute(tk)
- simgrid.info("Slave '" ..my_mailbox.."': task "..simgrid.Task.name(tk) .. " done")
-end -- while
-simgrid.info("Slave '" ..my_mailbox.."': I'm Done . See You !!");
+ simgrid.info("I'm done. See you!")
+end -- Slave
-end
--- end_of_slave