}
void TRACE_paje_init() {
- active_writer.print_DefineContainerType = print_pajeDefineContainerType;
- active_writer.print_DefineVariableType = print_pajeDefineVariableType;
- active_writer.print_DefineStateType = print_pajeDefineStateType;
- active_writer.print_DefineEventType = print_pajeDefineEventType;
- active_writer.print_DefineLinkType = print_pajeDefineLinkType;
- active_writer.print_DefineEntityValue = print_pajeDefineEntityValue;
- active_writer.print_CreateContainer = print_pajeCreateContainer;
- active_writer.print_DestroyContainer = print_pajeDestroyContainer;
- active_writer.print_SetVariable = print_pajeSetVariable;
- active_writer.print_AddVariable = print_pajeAddVariable;
- active_writer.print_SubVariable = print_pajeSubVariable;
- active_writer.print_SetState = print_pajeSetState;
- active_writer.print_PushState = print_pajePushState;
- active_writer.print_PopState = print_pajePopState;
- active_writer.print_ResetState = print_pajeResetState;
- active_writer.print_StartLink = print_pajeStartLink;
- active_writer.print_EndLink = print_pajeEndLink;
- active_writer.print_NewEvent = print_pajeNewEvent;
+ active_writer.print_DefineContainerType = &print_pajeDefineContainerType;
+ active_writer.print_DefineVariableType = &print_pajeDefineVariableType;
+ active_writer.print_DefineStateType = &print_pajeDefineStateType;
+ active_writer.print_DefineEventType = &print_pajeDefineEventType;
+ active_writer.print_DefineLinkType = &print_pajeDefineLinkType;
+ active_writer.print_DefineEntityValue = &print_pajeDefineEntityValue;
+ active_writer.print_CreateContainer = &print_pajeCreateContainer;
+ active_writer.print_DestroyContainer = &print_pajeDestroyContainer;
+ active_writer.print_SetVariable = &print_pajeSetVariable;
+ active_writer.print_AddVariable = &print_pajeAddVariable;
+ active_writer.print_SubVariable = &print_pajeSubVariable;
+ active_writer.print_SetState = &print_pajeSetState;
+ active_writer.print_PushState = &print_pajePushState;
+ active_writer.print_PopState = &print_pajePopState;
+ active_writer.print_ResetState = &print_pajeResetState;
+ active_writer.print_StartLink = &print_pajeStartLink;
+ active_writer.print_EndLink = &print_pajeEndLink;
+ active_writer.print_NewEvent = &print_pajeNewEvent;
}
void TRACE_paje_start() {
/* The active set of functions for the selected trace format
* By default, they all do nothing, hence the print_NULL to avoid segfaults */
-s_instr_trace_writer_t active_writer = {
- print_NULL, print_NULL, print_NULL, print_NULL,
- print_NULL, print_NULL, print_NULL, print_NULL,
- print_NULL, print_NULL, print_NULL, print_NULL,
- print_NULL, print_NULL, print_NULL, print_NULL,
- print_NULL, print_NULL
-};
+s_instr_trace_writer_t active_writer = {&print_NULL, &print_NULL, &print_NULL, &print_NULL, &print_NULL, &print_NULL,
+ &print_NULL, &print_NULL, &print_NULL, &print_NULL, &print_NULL, &print_NULL,
+ &print_NULL, &print_NULL, &print_NULL, &print_NULL, &print_NULL, &print_NULL};
std::vector<paje_event_t> buffer;
event->event_type = PAJE_DefineContainerType;
event->timestamp = 0;
event->print = active_writer.print_DefineContainerType;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_defineContainerType_t, 1);
((defineContainerType_t)(event->data))->type = type;
event->event_type = PAJE_DefineVariableType;
event->timestamp = 0;
event->print = active_writer.print_DefineVariableType;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_defineVariableType_t, 1);
((defineVariableType_t)(event->data))->type = type;
event->event_type = PAJE_DefineStateType;
event->timestamp = 0;
event->print = active_writer.print_DefineStateType;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_defineStateType_t, 1);
((defineStateType_t)(event->data))->type = type;
event->event_type = PAJE_DefineEventType;
event->timestamp = 0;
event->print = active_writer.print_DefineEventType;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_defineEventType_t, 1);
((defineEventType_t)(event->data))->type = type;
event->event_type = PAJE_DefineLinkType;
event->timestamp = 0;
event->print = active_writer.print_DefineLinkType;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_defineLinkType_t, 1);
((defineLinkType_t)(event->data))->type = type;
((defineLinkType_t)(event->data))->source = source;
event->event_type = PAJE_DefineEntityValue;
event->timestamp = 0;
event->print = active_writer.print_DefineEntityValue;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_defineEntityValue_t, 1);
((defineEntityValue_t)(event->data))->value = value;
event->event_type = PAJE_CreateContainer;
event->timestamp = SIMIX_get_clock();
event->print = active_writer.print_CreateContainer;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_createContainer_t, 1);
((createContainer_t)(event->data))->container = container;
event->event_type = PAJE_DestroyContainer;
event->timestamp = SIMIX_get_clock();
event->print = active_writer.print_DestroyContainer;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_destroyContainer_t, 1);
((destroyContainer_t)(event->data))->container = container;
event->event_type = PAJE_SetVariable;
event->timestamp = timestamp;
event->print = active_writer.print_SetVariable;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_setVariable_t, 1);
((setVariable_t)(event->data))->type = type;
((setVariable_t)(event->data))->container = container;
event->event_type = PAJE_AddVariable;
event->timestamp = timestamp;
event->print = active_writer.print_AddVariable;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_addVariable_t, 1);
((addVariable_t)(event->data))->type = type;
((addVariable_t)(event->data))->container = container;
event->event_type = PAJE_SubVariable;
event->timestamp = timestamp;
event->print = active_writer.print_SubVariable;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_subVariable_t, 1);
((subVariable_t)(event->data))->type = type;
((subVariable_t)(event->data))->container = container;
event->event_type = PAJE_SetState;
event->timestamp = timestamp;
event->print = active_writer.print_SetState;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_setState_t, 1);
((setState_t)(event->data))->type = type;
((setState_t)(event->data))->container = container;
event->event_type = PAJE_PushState;
event->timestamp = timestamp;
event->print = active_writer.print_PushState;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_pushState_t, 1);
((pushState_t)(event->data))->type = type;
((pushState_t)(event->data))->container = container;
event->event_type = PAJE_PopState;
event->timestamp = timestamp;
event->print = active_writer.print_PopState;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_popState_t, 1);
((popState_t)(event->data))->type = type;
((popState_t)(event->data))->container = container;
event->event_type = PAJE_ResetState;
event->timestamp = timestamp;
event->print = active_writer.print_ResetState;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_resetState_t, 1);
((resetState_t)(event->data))->type = type;
((resetState_t)(event->data))->container = container;
event->event_type = PAJE_StartLink;
event->timestamp = timestamp;
event->print = active_writer.print_StartLink;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_startLink_t, 1);
((startLink_t)(event->data))->type = type;
((startLink_t)(event->data))->container = container;
event->event_type = PAJE_StartLink;
event->timestamp = timestamp;
event->print = active_writer.print_StartLink;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_startLink_t, 1);
((startLink_t)(event->data))->type = type;
((startLink_t)(event->data))->container = container;
event->event_type = PAJE_EndLink;
event->timestamp = timestamp;
event->print = active_writer.print_EndLink;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_endLink_t, 1);
((endLink_t)(event->data))->type = type;
((endLink_t)(event->data))->container = container;
event->event_type = PAJE_NewEvent;
event->timestamp = timestamp;
event->print = active_writer.print_NewEvent;
- event->free = free_paje_event;
+ event->free = &free_paje_event;
event->data = xbt_new0(s_newEvent_t, 1);
((newEvent_t)(event->data))->type = type;
((newEvent_t)(event->data))->container = container;
switch (mode) {
case XBT_PARMAP_POSIX:
- parmap->master_wait_f = xbt_parmap_posix_master_wait;
- parmap->worker_signal_f = xbt_parmap_posix_worker_signal;
- parmap->master_signal_f = xbt_parmap_posix_master_signal;
- parmap->worker_wait_f = xbt_parmap_posix_worker_wait;
+ parmap->master_wait_f = &xbt_parmap_posix_master_wait;
+ parmap->worker_signal_f = &xbt_parmap_posix_worker_signal;
+ parmap->master_signal_f = &xbt_parmap_posix_master_signal;
+ parmap->worker_wait_f = &xbt_parmap_posix_worker_wait;
parmap->ready_cond = xbt_os_cond_init();
parmap->ready_mutex = xbt_os_mutex_init();
break;
case XBT_PARMAP_FUTEX:
#if HAVE_FUTEX_H
- parmap->master_wait_f = xbt_parmap_futex_master_wait;
- parmap->worker_signal_f = xbt_parmap_futex_worker_signal;
- parmap->master_signal_f = xbt_parmap_futex_master_signal;
- parmap->worker_wait_f = xbt_parmap_futex_worker_wait;
+ parmap->master_wait_f = &xbt_parmap_futex_master_wait;
+ parmap->worker_signal_f = &xbt_parmap_futex_worker_signal;
+ parmap->master_signal_f = &xbt_parmap_futex_master_signal;
+ parmap->worker_wait_f = &xbt_parmap_futex_worker_wait;
xbt_os_cond_destroy(parmap->ready_cond);
xbt_os_mutex_destroy(parmap->ready_mutex);
xbt_die("Futex is not available on this OS.");
#endif
case XBT_PARMAP_BUSY_WAIT:
- parmap->master_wait_f = xbt_parmap_busy_master_wait;
- parmap->worker_signal_f = xbt_parmap_busy_worker_signal;
- parmap->master_signal_f = xbt_parmap_busy_master_signal;
- parmap->worker_wait_f = xbt_parmap_busy_worker_wait;
+ parmap->master_wait_f = &xbt_parmap_busy_master_wait;
+ parmap->worker_signal_f = &xbt_parmap_busy_worker_signal;
+ parmap->master_signal_f = &xbt_parmap_busy_master_signal;
+ parmap->worker_wait_f = &xbt_parmap_busy_worker_wait;
xbt_os_cond_destroy(parmap->ready_cond);
xbt_os_mutex_destroy(parmap->ready_mutex);