Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
further simplifications to ruby: kill useless ProcessFactory (should to the same...
[simgrid.git] / src / bindings / ruby / MasterSlave.rb
index 9b1cbe6..0156cc9 100644 (file)
@@ -1,3 +1,6 @@
+# Debug it with this command:
+# make -C ../.. && valgrind ruby MasterSlave.rb --log=ruby.thres:debug 2>&1 | less
+
 require 'simgrid'
 include MSG
 
@@ -5,12 +8,7 @@ include MSG
 # Class Master
 #################################################
 
-class Master < RbProcess  
-  def initialize2()
-    super()
-  end
-  
+class Master < MsgProcess  
   # msg_main : that function that will be executed when Running Simulation
   def msg_main(args) # args is an array containing arguments for function master
     info("Hello From Master")
@@ -30,12 +28,12 @@ class Master < RbProcess
    for i in 0..numberOfTask-1
   
      
-     task = RbTask.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
+     task = Task.new("Task_"+ i.to_s, taskComputeSize , taskCommunicationSize );
      s_alias = "slave>>" + (i%slaveCount).to_s
-     info("Master Sending "+ RbTask.name(task) + " to " + s_alias + " with Comput Size " + RbTask.compSize(task).to_s)
-     RbTask.send(task,s_alias)
-     info("Master Done Sending " +RbTask.name(task) + " to " + s_alias)
-#       sameTask = RbTask.receive(s_alias)
+     info("Master Sending "+ Task.name(task) + " to " + s_alias + " with Comput Size " + Task.compSize(task).to_s)
+     Task.send(task,s_alias)
+     info("Master Done Sending " +Task.name(task) + " to " + s_alias)
+#       sameTask = Task.receive(s_alias)
 #      puts "Master Receiving its Own Task"
    end
   
@@ -44,7 +42,7 @@ class Master < RbProcess
    for i in 0..slaveCount-1
      s_alias = "slave " + i.to_s
      info ("Master Sending Finalize to " + s_alias)
-     RbTask.send(RbTask.new("finalize",0,0),s_alias)
+     Task.send(Task.new("finalize",0,0),s_alias)
    end
    info("Master : Everything's Done")
   end    
@@ -53,12 +51,7 @@ end
 #################################################
 # Class Slave
 #################################################
-class Slave < RbProcess
-  
-  def initialize()
-    super()
-  end
-  
+class Slave < MsgProcess
  # msg_main : that function that will be executed when Running Simulation
   def msg_main(args)
     info("Hello From Slave")
@@ -67,15 +60,15 @@ class Slave < RbProcess
     while true
         
        info("Ready to Receive Task")
-       task = RbTask.receive(s_mailbox)
-       task_name = RbTask.name(task)
+       task = Task.receive(s_mailbox)
+       task_name = Task.name(task)
        info ("Task Received : " + task.name)
       if (task_name == "finalize")
        info("Slave" + s_mailbox + "got finalize msg")
        break
       end
-      info("Slave " + s_mailbox + " ...Processing" + RbTask.name(task))
-       RbTask.execute(task)
+      info("Slave " + s_mailbox + " ...Processing" + Task.name(task))
+       Task.execute(task)
     end
     info("Slave " + s_mailbox +  "I'm Done , See You !!")
     end