-- 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
-while true do
+ local my_mailbox = "slave " .. arg[1]
+ simgrid.info("Hello from lua, I'm a poor slave with mbox: " .. my_mailbox)
- local tk = simgrid.task.recv(my_mailbox);
- if (simgrid.task.name(tk) == "finalize") then
- simgrid.info("Slave '" ..my_mailbox.."' got finalize msg");
- break
- 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
+ while true do
+
+ local task = simgrid.task.recv(my_mailbox);
+ --print(task)
+ local task_name = task:get_name()
+ if (task:get_name() == "finalize") then
+ simgrid.info("Slave '" .. my_mailbox .. "' got finalize msg");
+ break
+ end
+ --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")
+ end -- while
-simgrid.info("Slave '" ..my_mailbox.."': I'm Done . See You !!");
+ simgrid.info("Slave '" .. my_mailbox .. "': I'm Done . See You !!");
end
-- end_of_slave