Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Adding more informations when blocking. Should help debugging.
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 19 Jun 2006 14:19:39 +0000 (14:19 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 19 Jun 2006 14:19:39 +0000 (14:19 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@2394 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/msg/gos.c
src/msg/m_process.c
src/msg/private.h

index fd74bc8..cd12369 100644 (file)
@@ -72,9 +72,9 @@ static MSG_error_t __MSG_task_get_with_time_out_from_host(m_task_t * task,
                channel);
     h_simdata->sleeping[channel] = process; /* I'm waiting. Wake me up when you're ready */
     if(max_duration>0) {
                channel);
     h_simdata->sleeping[channel] = process; /* I'm waiting. Wake me up when you're ready */
     if(max_duration>0) {
-      __MSG_process_block(max_duration);
+      __MSG_process_block(max_duration,"");
     } else {
     } else {
-      __MSG_process_block(-1);
+      __MSG_process_block(-1,"");
     }
     h_simdata->sleeping[channel] = NULL;
     first_time = 0;
     }
     h_simdata->sleeping[channel] = NULL;
     first_time = 0;
@@ -327,9 +327,9 @@ MSG_error_t MSG_channel_select_from(m_channel_t channel, double max_duration,
                  h_simdata->sleeping[channel]->simdata->PID);
       h_simdata->sleeping[channel] = process; /* I'm waiting. Wake me up when you're ready */
       if(max_duration>0) {
                  h_simdata->sleeping[channel]->simdata->PID);
       h_simdata->sleeping[channel] = process; /* I'm waiting. Wake me up when you're ready */
       if(max_duration>0) {
-       __MSG_process_block(max_duration);
+       __MSG_process_block(max_duration,"");
       } else {
       } else {
-       __MSG_process_block(-1);
+       __MSG_process_block(-1,"");
       }
       if(surf_workstation_resource->extension_public->get_state(h_simdata->host) 
         == SURF_CPU_OFF) {
       }
       if(surf_workstation_resource->extension_public->get_state(h_simdata->host) 
         == SURF_CPU_OFF) {
@@ -447,7 +447,7 @@ MSG_error_t MSG_task_put(m_task_t task,
   process->simdata->put_channel = channel;
   while(!(task_simdata->comm)) {
     DEBUG0("Communication not initiated yet. Let's block!");
   process->simdata->put_channel = channel;
   while(!(task_simdata->comm)) {
     DEBUG0("Communication not initiated yet. Let's block!");
-    __MSG_process_block(-1);
+    __MSG_process_block(-1,task->name);
     if(surf_workstation_resource->extension_public->
        get_state(local_host->simdata->host) == SURF_CPU_OFF) {
       xbt_fifo_remove(((simdata_host_t) remote_host->simdata)->mbox[channel],
     if(surf_workstation_resource->extension_public->
        get_state(local_host->simdata->host) == SURF_CPU_OFF) {
       xbt_fifo_remove(((simdata_host_t) remote_host->simdata)->mbox[channel],
index 088d8f5..085fce0 100644 (file)
@@ -459,15 +459,13 @@ int MSG_process_is_suspended(m_process_t process)
   return (process->simdata->suspended);
 }
 
   return (process->simdata->suspended);
 }
 
-static char blocked_name[512];
-
-int __MSG_process_block(double max_duration)
+int __MSG_process_block(double max_duration, const char *info)
 {
   m_process_t process = MSG_process_self();
 {
   m_process_t process = MSG_process_self();
-
   m_task_t dummy = MSG_TASK_UNINITIALIZED;
   m_task_t dummy = MSG_TASK_UNINITIALIZED;
-  snprintf(blocked_name,512,"blocked (%s:%s)",process->name,
-         process->simdata->host->name);
+  char blocked_name[512];
+  snprintf(blocked_name,512,"blocked [%s] (%s:%s)",process->name,
+         info, process->simdata->host->name);
 
   XBT_IN1(": max_duration=%g",max_duration);
 
 
   XBT_IN1(": max_duration=%g",max_duration);
 
index 45352e0..af95d1a 100644 (file)
@@ -117,7 +117,7 @@ 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);
 
 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);
 
 MSG_error_t __MSG_process_unblock(m_process_t process);
 int __MSG_process_isBlocked(m_process_t process);