Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Split inspector::is_pending() in two logical parts
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sun, 28 Feb 2021 23:24:04 +0000 (00:24 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sun, 28 Feb 2021 23:24:12 +0000 (00:24 +0100)
commita816e6918b9e43989783b770363e14efb1856a8e
tree2bb228dcdbd87d9056b56e161e7005d2024b3192
parent76101040507705df54bb1aafa0fc61e3a43cdd79
Split inspector::is_pending() in two logical parts

- get_max_consider() returns how many times this simcall should be considered.
- prepare() does what needs to be done for the simcall to be fired in user space

This removes the RPC from MC to App to get this information:

 - The value of get_max_consider() is copied in the simcall structure
   when the AppSide prepares to wait for new instructions from the MC.
 - prepare() was already called by handle_simcall() on AppSide, to
   obey trace replays.

Less RPC is faster and less eror prone.
src/mc/ModelChecker.cpp
src/mc/ModelChecker.hpp
src/mc/api.cpp
src/mc/checker/SimcallInspector.hpp
src/mc/mc_base.cpp
src/mc/remote/AppSide.cpp
src/mc/remote/mc_protocol.h
src/simix/popping_generated.cpp
src/simix/popping_private.hpp
src/simix/simcalls.py