A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
small simplifications around simcalls
[simgrid.git]
/
src
/
kernel
/
activity
/
IoImpl.cpp
diff --git
a/src/kernel/activity/IoImpl.cpp
b/src/kernel/activity/IoImpl.cpp
index
b7c10da
..
6022c2d
100644
(file)
--- a/
src/kernel/activity/IoImpl.cpp
+++ b/
src/kernel/activity/IoImpl.cpp
@@
-75,6
+75,7
@@
void IoImpl::post()
}
on_completion(*this);
}
on_completion(*this);
+ /* Answer all simcalls associated with the synchro */
finish();
}
finish();
}
@@
-88,19
+89,19
@@
void IoImpl::finish()
/* do nothing, synchro done */
break;
case SIMIX_FAILED:
/* do nothing, synchro done */
break;
case SIMIX_FAILED:
- simcall->issuer->context_->iwannadie = true;
- simcall->issuer->exception_ =
+ simcall->issuer
_
->context_->iwannadie = true;
+ simcall->issuer
_
->exception_ =
std::make_exception_ptr(StorageFailureException(XBT_THROW_POINT, "Storage failed"));
break;
case SIMIX_CANCELED:
std::make_exception_ptr(StorageFailureException(XBT_THROW_POINT, "Storage failed"));
break;
case SIMIX_CANCELED:
- simcall->issuer->exception_ = std::make_exception_ptr(CancelException(XBT_THROW_POINT, "I/O Canceled"));
+ simcall->issuer
_
->exception_ = std::make_exception_ptr(CancelException(XBT_THROW_POINT, "I/O Canceled"));
break;
default:
xbt_die("Internal error in IoImpl::finish(): unexpected synchro state %d", static_cast<int>(state_));
}
break;
default:
xbt_die("Internal error in IoImpl::finish(): unexpected synchro state %d", static_cast<int>(state_));
}
- simcall->issuer->waiting_synchro = nullptr;
-
SIMIX_simcall_answer(simcall
);
+ simcall->issuer
_
->waiting_synchro = nullptr;
+
simcall->issuer_->simcall_answer(
);
}
}
}
}