Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use a mallocator for MSG tasks
[simgrid.git] / src / msg / private.h
index 8d60aa7..697381f 100644 (file)
@@ -16,6 +16,7 @@
 #include "xbt/dict.h"
 #include "xbt/context.h"
 #include "xbt/config.h"
+#include "xbt/mallocator.h"
 
 /**************** datatypes **********************************/
 
@@ -87,6 +88,8 @@ typedef struct MSG_Global {
   int paje_maxPID;
   int PID;
   int session;
+  xbt_mallocator_t task_mallocator;
+  xbt_mallocator_t task_simdata_mallocator;
 } s_MSG_Global_t, *MSG_Global_t;
 
 extern MSG_Global_t msg_global;
@@ -117,10 +120,16 @@ void __MSG_task_execute(m_process_t process, m_task_t task);
 MSG_error_t __MSG_wait_for_computation(m_process_t process, m_task_t task);
 MSG_error_t __MSG_task_wait_event(m_process_t process, m_task_t task);
 
-int __MSG_process_block(double max_duration);
+int __MSG_process_block(double max_duration, const char *info);
 MSG_error_t __MSG_process_unblock(m_process_t process);
 int __MSG_process_isBlocked(m_process_t process);
 
+void __MSG_display_process_status(void);
+
+m_task_t task_mallocator_new_f(void);
+void task_mallocator_free_f(m_task_t task);
+void task_mallocator_reset_f(m_task_t task);
+
 #ifdef ALVIN_SPECIAL_LOGING
 #define PAJE_PROCESS_STATE(process,state)\
   if(msg_global->paje_output) \
@@ -171,10 +180,10 @@ int __MSG_process_isBlocked(m_process_t process);
   if(msg_global->paje_output) \
     fprintf(msg_global->paje_output,"10 %f S_t %p %s\n",\
             surf_get_clock(), (process),(state))
-#define PAJE_PROCESS_PUSH_STATE(process,state)\
+#define PAJE_PROCESS_PUSH_STATE(process,state,task)\
   if(msg_global->paje_output) \
-    fprintf(msg_global->paje_output,"11 %f S_t %p %s\n",\
-            surf_get_clock(), (process),(state))
+    fprintf(msg_global->paje_output,"11 %f S_t %p %s \"%s\"\n",\
+            surf_get_clock(), (process),(state),(task)?((m_task_t)(task))->name:"")
 #define PAJE_PROCESS_POP_STATE(process)\
   if(msg_global->paje_output) \
     fprintf(msg_global->paje_output,"12 %f S_t %p\n",\
@@ -192,13 +201,13 @@ int __MSG_process_isBlocked(m_process_t process);
 #define PAJE_COMM_START(process,task,channel)\
   if(msg_global->paje_output) \
     fprintf(msg_global->paje_output,\
-           "16 %f      Comm    CUR     COMM_%d %p      %p\n", \
-            surf_get_clock(), channel, (process), task)
+           "16 %f      Comm    CUR     \"CHANNEL_%d %s\"       %p      %p\n", \
+            surf_get_clock(), channel, task->name, (process), task)
 #define PAJE_COMM_STOP(process,task,channel)\
   if(msg_global->paje_output) \
     fprintf(msg_global->paje_output,\
-           "17 %f      Comm    CUR     COMM_%d %p      %p\n", \
-            surf_get_clock(), channel, (process), task)
+           "17 %f      Comm    CUR     \"CHANNEL_%d %s\"       %p      %p\n", \
+            surf_get_clock(), channel, task->name, (process), task)
 #define PAJE_HOST_NEW(host)\
   if(msg_global->paje_output)\
     fprintf(msg_global->paje_output,"7 %f %p H_t CUR \"%s\"\n",surf_get_clock(), \