A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
| inline |
side by side
[trace] when a process migrates, we need to clean-up its container properly (includin...
[simgrid.git]
/
src
/
instr
/
instr_paje_trace.c
diff --git
a/src/instr/instr_paje_trace.c
b/src/instr/instr_paje_trace.c
index
a8060aa
..
c4a7cbe
100644
(file)
--- a/
src/instr/instr_paje_trace.c
+++ b/
src/instr/instr_paje_trace.c
@@
-169,6
+169,7
@@
void TRACE_paje_end(void)
{
fclose(tracing_file);
char *filename = TRACE_get_filename();
+ xbt_dynar_free (&buffer);
XBT_DEBUG("Filename %s is closed", filename);
}
@@
-189,7
+190,7
@@
void TRACE_paje_dump_buffer (int force)
buffer = xbt_dynar_new (sizeof(paje_event_t), NULL);
}else{
paje_event_t event;
- while (
xbt_dynar_length (buffer) > 0
){
+ while (
!xbt_dynar_is_empty(buffer)
){
double head_timestamp = (*(paje_event_t*)xbt_dynar_get_ptr(buffer, 0))->timestamp;
if (head_timestamp > TRACE_last_timestamp_to_dump){
break;
@@
-224,7
+225,7
@@
void TRACE_paje_create_header(void)
%%EndEventDef \n\
%%EventDef PajeDefineEventType %d \n\
%% Alias string \n\
-%%
Entity
Type string \n\
+%%
Container
Type string \n\
%% Name string \n\
%% Color color \n\
%%EndEventDef \n\
@@
-251,46
+252,46
@@
void TRACE_paje_create_header(void)
%%EventDef PajeDestroyContainer %d \n\
%% Time date \n\
%% Type string \n\
-%%
Container
string \n\
+%%
Name
string \n\
%%EndEventDef \n\
%%EventDef PajeSetVariable %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
-%% Value
string
\n\
+%% Value
double
\n\
%%EndEventDef\n\
%%EventDef PajeAddVariable %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
-%% Value
string
\n\
+%% Value
double
\n\
%%EndEventDef\n\
%%EventDef PajeSubVariable %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
-%% Value
string
\n\
+%% Value
double
\n\
%%EndEventDef\n\
%%EventDef PajeSetState %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%%EndEventDef\n\
%%EventDef PajePushState %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%%EndEventDef\n\
%%EventDef PajePopState %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%%EndEventDef\n\
%%EventDef PajeStartLink %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%% SourceContainer string \n\
@@
-298,7
+299,7
@@
void TRACE_paje_create_header(void)
%%EndEventDef\n\
%%EventDef PajeEndLink %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%% DestContainer string \n\
@@
-306,7
+307,7
@@
void TRACE_paje_create_header(void)
%%EndEventDef\n\
%%EventDef PajeNewEvent %d \n\
%% Time date \n\
-%%
Entity
Type string \n\
+%% Type string \n\
%% Container string \n\
%% Value string \n\
%%EndEventDef\n",
@@
-422,14
+423,14
@@
static void print_pajeCreateContainer(paje_event_t event)
{
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp);
if (event->timestamp == 0){
- fprintf(tracing_file, "%d 0 %s %s %s
%s
\n",
+ fprintf(tracing_file, "%d 0 %s %s %s
\"%s\"
\n",
event->event_type,
((createContainer_t)event->data)->container->id,
((createContainer_t)event->data)->container->type->id,
((createContainer_t)event->data)->container->father->id,
((createContainer_t)event->data)->container->name);
}else{
- fprintf(tracing_file, "%d %lf %s %s %s
%s
\n",
+ fprintf(tracing_file, "%d %lf %s %s %s
\"%s\"
\n",
event->event_type,
event->timestamp,
((createContainer_t)event->data)->container->id,
@@
-636,12
+637,17
@@
static void print_pajeNewEvent (paje_event_t event)
static void free_paje_event (paje_event_t event)
{
XBT_DEBUG("%s: event_type=%d, timestamp=%f", __FUNCTION__, event->event_type, event->timestamp);
- if (event->event_type == PAJE_StartLink){
+ switch (event->event_type){
+ case PAJE_StartLink:
xbt_free (((startLink_t)(event->data))->value);
xbt_free (((startLink_t)(event->data))->key);
- }else if (event->event_type == PAJE_EndLink){
+ break;
+ case PAJE_EndLink:
xbt_free (((endLink_t)(event->data))->value);
xbt_free (((endLink_t)(event->data))->key);
+ break;
+ default:
+ break;
}
xbt_free (event->data);
xbt_free (event);