Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[L07] Don't segfault on point-to-point communications
authorMartin Quinson <martin.quinson@loria.fr>
Fri, 6 Nov 2015 22:03:02 +0000 (23:03 +0100)
committerMartin Quinson <martin.quinson@loria.fr>
Fri, 6 Nov 2015 22:03:05 +0000 (23:03 +0100)
NetworkL07Model::communicate() tries to use host->executeParallelTask(2, ...)
(to change P2P comms into parallel tasks), but host was never
initialized. (fix #28)

We should add a test for that too, I guess.

src/surf/host_ptask_L07.cpp
src/surf/host_ptask_L07.hpp

index 39a6de1..5dca166 100644 (file)
@@ -50,8 +50,8 @@ HostL07Model::HostL07Model() : HostModel() {
   if (!ptask_maxmin_system)
        ptask_maxmin_system = lmm_system_new(1);
   surf_host_model = NULL;
-  surf_network_model = new NetworkL07Model();
-  surf_cpu_model_pm = new CpuL07Model();
+  surf_network_model = new NetworkL07Model(this);
+  surf_cpu_model_pm = new CpuL07Model(this);
 
   routing_model_create(surf_network_model->createLink("__loopback__",
                                                          498000000, NULL,
index 51dd683..34d7a2c 100644 (file)
@@ -24,7 +24,6 @@ class XBT_PRIVATE CpuL07;
 class XBT_PRIVATE LinkL07;
 
 class XBT_PRIVATE L07Action;
-
 /*********
  * Tools *
  *********/
@@ -52,7 +51,7 @@ public:
 
 class CpuL07Model : public CpuModel {
 public:
-  CpuL07Model() : CpuModel() {};
+  CpuL07Model(HostL07Model *hmodel) : CpuModel() {p_hostModel = hmodel;};
   ~CpuL07Model() {surf_cpu_model_pm = NULL;};
   Cpu *createCpu(const char *name,  xbt_dynar_t powerPeak,
                           int pstate, double power_scale,
@@ -67,7 +66,7 @@ public:
 
 class NetworkL07Model : public NetworkModel {
 public:
-  NetworkL07Model() : NetworkModel() {};
+  NetworkL07Model(HostL07Model *hmodel) : NetworkModel() {p_hostModel = hmodel;};
   ~NetworkL07Model() {surf_network_model = NULL;};
   Link* createLink(const char *name,
                                                   double bw_initial,