aboutsummaryrefslogtreecommitdiff
path: root/src/simulator.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/simulator.cc')
-rw-r--r--src/simulator.cc11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/simulator.cc b/src/simulator.cc
index aedf810..865aabc 100644
--- a/src/simulator.cc
+++ b/src/simulator.cc
@@ -188,8 +188,8 @@ static void obs_node(std::vector<std::string> args) {
// Add hint to the data if possible
if(i.use_hint && i.HasNext()){
p->HasHint=true;
- p->duration=i.GetNextDuration();
- p->hint=i.GetNextTS();
+ p->duration=i.GetHintDuration(CLOCK);
+ p->hint=i.GetHintTS(CLOCK);
p->DataSize+=i.hint_size; // Don't forget!!
}
// Send the data
@@ -283,6 +283,8 @@ static void obs_node(std::vector<std::string> args) {
XBT_INFO("%s received a hint along with data successfully",CNAME);
hint_forward=new Payload(*p); // Enable hint forwarding
}
+ if(i.shutdown_on_rcv)
+ upuntil=CLOCK;
nDataRcv++;
isObserver=true;
is_sender=false;
@@ -342,6 +344,9 @@ static void obs_node(std::vector<std::string> args) {
uptime=upuntil-CLOCK; // Note that uptime can be < 0 in extended mode
uptime=uptime > 0 ? uptime : 0; // Just in case
}
+ // Check if we use unschedule_on_rcv
+ if(i.unschedule_on_rcv)
+ i.ResetEvents(CLOCK);
// Load next event
i.GotoNextEvent();
nWakeUp++; // Increase the number of wake up
@@ -349,5 +354,5 @@ static void obs_node(std::vector<std::string> args) {
}
// Done
MODE_OFF()
- XBT_INFO("Observation node %s finished [LOG2PARSE](node:%s|isSender:%d|nSend:%d|nWakeUp:%d|nDataRcv:%d|nSendFail:%d|nRcvFail:%d|totalUptime:%f|seed:%d|hint_added:%d|timeDataRcv:%f)",CNAME,CNAME,i.is_sender,nSend,nWakeUp,nDataRcv,nSendFail,nRcvFail,totalUptime,i.seed,hint_added,timeDataRcv);
+ XBT_INFO("Observation node %s finished [LOG2PARSE](node:%s|isSender:%d|nSend:%d|nWakeUp:%d|nDataRcv:%d|nSendFail:%d|nRcvFail:%d|totalUptime:%f|seed:%d|hint_added:%d|timeDataRcv:%f|shutdown_on_rcv:%d|unschedule_on_rcv:%d|farhint:%d|hintdist:%f)",CNAME,CNAME,i.is_sender,nSend,nWakeUp,nDataRcv,nSendFail,nRcvFail,totalUptime,i.seed,hint_added,timeDataRcv,i.shutdown_on_rcv,i.unschedule_on_rcv,i.farhint,i.hintdist);
} \ No newline at end of file