|
SimGrid
3.14.159
Versatile Simulation of Distributed Systems
|
#include <functional>#include <memory>#include <signal.h>#include <stdlib.h>#include "src/internal_config.h"#include <xbt/functional.hpp>#include <simgrid/s4u/host.hpp>#include "src/surf/surf_interface.hpp"#include "src/surf/storage_interface.hpp"#include "src/surf/xml/platf.hpp"#include "smx_private.h"#include "xbt/str.h"#include "xbt/ex.h"#include "mc/mc.h"#include "src/mc/mc_replay.h"#include "simgrid/sg_config.h"#include "src/kernel/activity/SynchroExec.hpp"#include "src/kernel/activity/SynchroComm.hpp"#include "src/kernel/activity/SynchroSleep.hpp"#include "src/kernel/activity/SynchroIo.hpp"#include "src/kernel/activity/SynchroRaw.hpp"#include "src/mc/mc_record.h"Classes | |
| struct | s_smx_timer |
| Timer datatype. More... | |
Namespaces | |
| simgrid | |
| Host datatype from SIMIX POV. | |
| simgrid::simix | |
Typedefs | |
| typedef struct s_smx_timer | s_smx_timer_t |
| Timer datatype. More... | |
Functions | |
| XBT_LOG_NEW_CATEGORY (simix, "All SIMIX categories") | |
| XBT_LOG_NEW_DEFAULT_SUBCATEGORY (simix_kernel, simix, "Logging specific to SIMIX (kernel)") | |
| static void | inthandler (int ignored) |
| static void | segvhandler (int signum, siginfo_t *siginfo, void *context) |
| static void | install_segvhandler () |
| Install signal handler for SIGSEGV. More... | |
| double | SIMIX_timer_next () |
| static void | kill_process (smx_actor_t process) |
| void | simgrid::simix::set_maestro (std::function< void()> code) |
| void | SIMIX_set_maestro (void(*code)(void *), void *data) |
| void | SIMIX_global_init (int *argc, char **argv) |
| Initialize SIMIX internal data. More... | |
| void | SIMIX_clean () |
| Clean the SIMIX simulation. More... | |
| double | SIMIX_get_clock () |
| A clock (in second). More... | |
| static int | process_syscall_color (void *p) |
| static void | SIMIX_wake_processes () |
| Wake up all processes waiting for a Surf action to finish. More... | |
| static bool | SIMIX_execute_timers () |
| Handle any pending timer. More... | |
| static bool | SIMIX_execute_tasks () |
| Execute all the tasks that are queued. More... | |
| void | SIMIX_run () |
| Run the main simulation loop. More... | |
| smx_timer_t | SIMIX_timer_set (double date, void(*callback)(void *), void *arg) |
| Set the date to execute a function. More... | |
| smx_timer_t | SIMIX_timer_set (double date, simgrid::xbt::Task< void()> callback) |
| void | SIMIX_timer_remove (smx_timer_t timer) |
| cancels a timer that was added earlier More... | |
| double | SIMIX_timer_get_date (smx_timer_t timer) |
| Returns the date at which the timer will trigger (or 0 if nullptr timer) More... | |
| void | SIMIX_function_register_process_create (smx_creation_func_t function) |
| Registers a function to create a process. More... | |
| void | SIMIX_function_register_process_kill (void_pfn_smxprocess_t function) |
| Registers a function to kill a process. More... | |
| void | SIMIX_function_register_process_cleanup (void_pfn_smxprocess_t function) |
| Registers a function to cleanup a process. More... | |
| void | SIMIX_display_process_status () |
| int | SIMIX_is_maestro () |
Variables | |
| std::unique_ptr< simgrid::simix::Global > | simix_global |
| static xbt_heap_t | simix_timers = nullptr |
| void(* | SMPI_switch_data_segment )(int) = nullptr |
| int | _sg_do_verbose_exit = 1 |
| char | sigsegv_stack [SIGSTKSZ] |
| static std::function< void()> | maestro_code |
| int | smx_cleaned = 0 |
| typedef struct s_smx_timer s_smx_timer_t |
Timer datatype.
| XBT_LOG_NEW_CATEGORY | ( | simix | , |
| "All SIMIX categories" | |||
| ) |
| XBT_LOG_NEW_DEFAULT_SUBCATEGORY | ( | simix_kernel | , |
| simix | , | ||
| "Logging specific to SIMIX (kernel)" | |||
| ) |
|
static |
|
static |
Install signal handler for SIGSEGV.
Check that nobody has already installed its own handler. For example, the Java VM does this.
| double SIMIX_timer_next | ( | ) |
|
static |
|
static |
|
static |
Wake up all processes waiting for a Surf action to finish.
|
static |
Handle any pending timer.
|
static |
Execute all the tasks that are queued.
e.g. .then() callbacks of futures.
| smx_timer_t SIMIX_timer_set | ( | double | date, |
| void(*)(void *) | callback, | ||
| void * | arg | ||
| ) |
Set the date to execute a function.
Set the date to execute the function on the surf.
| date | Date to execute function |
| callback | Function to be executed |
| arg | Parameters of the function |
| smx_timer_t SIMIX_timer_set | ( | double | date, |
| simgrid::xbt::Task< void()> | callback | ||
| ) |
| void SIMIX_timer_remove | ( | smx_timer_t | timer | ) |
cancels a timer that was added earlier
| double SIMIX_timer_get_date | ( | smx_timer_t | timer | ) |
Returns the date at which the timer will trigger (or 0 if nullptr timer)
| void SIMIX_function_register_process_create | ( | smx_creation_func_t | function | ) |
Registers a function to create a process.
This function registers a function to be called when a new process is created. The function has to call SIMIX_process_create().
| function | create process function |
| void SIMIX_function_register_process_kill | ( | void_pfn_smxprocess_t | function | ) |
Registers a function to kill a process.
This function registers a function to be called when a process is killed. The function has to call the SIMIX_process_kill().
| function | Kill process function |
| void SIMIX_function_register_process_cleanup | ( | void_pfn_smxprocess_t | function | ) |
Registers a function to cleanup a process.
This function registers a user function to be called when a process ends properly.
| function | cleanup process function |
| void SIMIX_display_process_status | ( | ) |
| int SIMIX_is_maestro | ( | ) |
| std::unique_ptr<simgrid::simix::Global> simix_global |
|
static |
| void(* SMPI_switch_data_segment) (int) = nullptr |
| int _sg_do_verbose_exit = 1 |
| char sigsegv_stack[SIGSTKSZ] |
|
static |
| int smx_cleaned = 0 |