Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
[sonar] Constify pointer and reference local variables in src/kernel/.
[simgrid.git] / src / kernel / activity / IoImpl.cpp
index 338999b..d9d5719 100644 (file)
@@ -50,6 +50,19 @@ void simcall_HANDLER_io_wait(smx_simcall_t simcall, simgrid::kernel::activity::I
   }
 }
 
+void simcall_HANDLER_io_test(smx_simcall_t simcall, simgrid::kernel::activity::IoImpl* synchro)
+{
+  bool res = (synchro->state_ != simgrid::kernel::activity::State::WAITING &&
+              synchro->state_ != simgrid::kernel::activity::State::RUNNING);
+  if (res) {
+    synchro->simcalls_.push_back(simcall);
+    synchro->finish();
+  } else {
+    simcall->issuer_->simcall_answer();
+  }
+  simcall_io_test__set__result(simcall, res);
+}
+
 namespace simgrid {
 namespace kernel {
 namespace activity {
@@ -121,7 +134,7 @@ void IoImpl::post()
 void IoImpl::finish()
 {
   while (not simcalls_.empty()) {
-    smx_simcall_t simcall = simcalls_.front();
+    const s_smx_simcall* simcall = simcalls_.front();
     simcalls_.pop_front();
     switch (state_) {
       case State::DONE: