SimGrid
3.16
Versatile Simulation of Distributed Systems
|
#include "smx_private.h"
#include "xbt/xbt_os_thread.h"
#include "src/kernel/activity/CommImpl.hpp"
#include "src/kernel/activity/ExecImpl.hpp"
#include "src/kernel/activity/SleepImpl.hpp"
#include "src/kernel/activity/SynchroIo.hpp"
#include "src/kernel/activity/SynchroRaw.hpp"
Functions | |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY (simix_popping, simix, "Popping part of SIMIX (transmuting from user request into kernel handlers)") | |
void | SIMIX_simcall_answer (smx_simcall_t simcall) |
void | SIMIX_simcall_exit (smx_activity_t synchro) |
void | SIMIX_run_kernel (std::function< void()> const *code) |
void | SIMIX_run_blocking (std::function< void()> const *code) |
Kernel code for run_blocking. More... | |
XBT_LOG_NEW_DEFAULT_SUBCATEGORY | ( | simix_popping | , |
simix | , | ||
"Popping part of SIMIX (transmuting from user request into kernel handlers)" | |||
) |
void SIMIX_simcall_answer | ( | smx_simcall_t | simcall | ) |
void SIMIX_simcall_exit | ( | smx_activity_t | synchro | ) |
void SIMIX_run_kernel | ( | std::function< void()> const * | code | ) |
void SIMIX_run_blocking | ( | std::function< void()> const * | code | ) |
Kernel code for run_blocking.
The implementtion looks a lot like SIMIX_run_kernel ^^
However, this run_blocking
is blocking so the process will not be woken up until SIMIX_simcall_answer(simcall)
is called by the kernel. This means that
code` is responsible for doing this.