X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/2ace2e9a66953011268a2b64824638305807612e..60b5be19e93620a8ec8394cfa12c36d9cfad98a0:/src/mc/checker/SimcallInspector.hpp?ds=sidebyside diff --git a/src/mc/checker/SimcallInspector.hpp b/src/mc/checker/SimcallInspector.hpp index d1327f3c20..35287d4a98 100644 --- a/src/mc/checker/SimcallInspector.hpp +++ b/src/mc/checker/SimcallInspector.hpp @@ -1,4 +1,4 @@ -/* Copyright (c) 2019. The SimGrid Team. All rights reserved. */ +/* Copyright (c) 2019-2020. The SimGrid Team. All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it * under the terms of the license (GNU LGPL) which comes with this package. */ @@ -13,14 +13,22 @@ namespace mc { class SimcallInspector { public: - /** whether this transition can currently be taken without blocking. + /** Whether this transition can currently be taken without blocking. * * For example, a mutex_lock is not enabled when the mutex is not free. * A comm_receive is not enabled before the corresponding send has been issued. */ virtual bool is_enabled() { return true; } - /** Some simcalls may only be observable under some circomstances. + /** Prepare the simcall to be executed + * + * Do the choices that the platform would have done in non-MC settings. + * For example if it's a waitany, pick the communication that should finish first. + * If it's a random(), choose the next value to explore. + */ + virtual void arm() {} + + /** Some simcalls may only be observable under some circumstances. * Most simcalls are not visible from the MC because they don't have an inspector at all. */ virtual bool is_visible() { return true; } virtual std::string to_string() = 0;