Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge remote-tracking branch 'adfaure/master'
[simgrid.git] / src / s4u / s4u_comm.cpp
index 5910405..401a6c2 100644 (file)
@@ -146,5 +146,22 @@ s4u::Comm &Comm::recv_async(Mailbox &dest, void **data) {
   return res;
 }
 
+bool Comm::test() {
+  xbt_assert(state_ == inited || state_ == started || state_ == finished);
+  
+  if (state_ == finished) 
+    xbt_die("Don't call test on a finished comm.");
+  
+  if (state_ == inited) {
+    this->start();
+  }
+  
+  if(simcall_comm_test(pimpl_)){
+    state_ = finished;
+    return true;
+  }
+  return false;
+}
+
 }
 }