@@ -256,20 +256,16 @@ void Worker::handleDataMessage(DataMessage* dataMessage)
256256 double I = dataMessage->getLoadToProcess ();
257257 double CR = cpuFreq;
258258
259- double timeToCompute = 0.001 + exponential (1 / ( CPI * I * (1 / CR) ));
259+ double timeToCompute = 0.001 + exponential (CPI * I * (1 / CR));
260260 EV << " TIME TO COMPUTE" << timeToCompute << endl;
261261
262262 auto key = std::pair<int , int >(dataMessage->getTaskId (), dataMessage->getPartitionId ());
263263
264264 // If the cache is not empty it resends the response message tied to this data message
265265 if (responseCache.find (key) != responseCache.end ()){
266- double time = timeToCompute + (dataMessage->getTransferTime () * dataMessage->getTotalFragments ()) + par (" ackMessageThreshold" ).doubleValue ();
266+ double time = timeToCompute + (dataMessage->getTransferTime () * dataMessage->getTotalFragments () * dataMessage-> getNumberOfVehicles () ) + par (" ackMessageThreshold" ).doubleValue ();
267267 sendAgainResponse (responseCache.at (key), time);
268268 return ;
269- } else {
270- // Increment the number of data partitions I've received only when
271- // is a new partition
272- dataPartitionsReceived++;
273269 }
274270
275271 // Reset the task availability timer
@@ -309,6 +305,10 @@ void Worker::handleDataMessage(DataMessage* dataMessage)
309305 responseMessage->setStillAvailable (true );
310306 }
311307
308+ // Increment the number of data partitions I've received only when
309+ // is a new partition
310+ dataPartitionsReceived++;
311+
312312 responseMessage->setDataComputed (dataMessage->getLoadToProcess ());
313313 responseMessage->setTimeToCompute (timeToCompute);
314314 responseMessage->setTaskID (dataMessage->getTaskId ());
@@ -335,7 +335,7 @@ void Worker::handleDataMessage(DataMessage* dataMessage)
335335 // Generate ACK timer if parameter useAcks is false
336336 // to achieve secure protocol manually and if I'm not still available
337337 if (par (" useAcks" ).boolValue () == false ) {
338- time = timeToCompute + ((dataMessage->getTransferTime () / 2 ) * dataMessage->getTotalFragments ()) + par (" ackMessageThreshold" ).doubleValue ();
338+ time = timeToCompute + ((dataMessage->getTransferTime () / 2 ) * dataMessage->getTotalFragments () * dataMessage-> getNumberOfVehicles () ) + par (" ackMessageThreshold" ).doubleValue ();
339339
340340 // The & inside the square brackets tells to capture all local variable
341341 // by value
0 commit comments