Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[Doc] Added description for the boost context factory
[simgrid.git] / examples / lua / masterslave / slave.lua
index 9ecddc6..e1ade87 100644 (file)
@@ -1,26 +1,31 @@
+-- Copyright (c) 2011-2012, 2014. The SimGrid Team.
+-- All rights reserved.
 
+-- This program is free software; you can redistribute it and/or modify it
+-- under the terms of the license (GNU LGPL) which comes with this package.
 
--- 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 select("#", ...) ~= 1 then
+    error("Wrong number of arguments (got " .. #arg .. ", expected 1: slave_id)")
+  end
 
+  local my_mailbox = "slave " .. select(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 -- end_of_slave
 
-end 
--- end_of_slave