Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
SMPI: Add a global table of processes, which one day will replace the table of hosts
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 24 Jun 2009 19:53:50 +0000 (19:53 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Wed, 24 Jun 2009 19:53:50 +0000 (19:53 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@6340 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/smpi/private.h
src/smpi/smpi_base.c
src/smpi/smpi_global.c

index 5f79622..90b5b34 100644 (file)
@@ -93,6 +93,7 @@ typedef struct smpi_global_t {
   xbt_fifo_t *pending_send_request_queues;
   xbt_fifo_t *received_message_queues;
 
+  smx_process_t *main_processes;
   smx_process_t *sender_processes;
   smx_process_t *receiver_processes;
 
index 6af070a..fbc34fb 100644 (file)
@@ -78,6 +78,8 @@ void smpi_process_init()
           smpi_receiver, hdata,
           SIMIX_host_get_name(SIMIX_host_self()), 0, NULL,
           /*props */ NULL);
+
+  smpi_global->main_processes[hdata->index] = SIMIX_process_self();
   return;
 }
 
index 0648f05..870bae3 100644 (file)
@@ -168,6 +168,7 @@ void smpi_global_init()
   smpi_global->received_message_queues = xbt_new(xbt_fifo_t, size);
 
   // sender/receiver processes
+  smpi_global->main_processes = xbt_new(smx_process_t, size);
   smpi_global->sender_processes = xbt_new(smx_process_t, size);
   smpi_global->receiver_processes = xbt_new(smx_process_t, size);
 
@@ -230,6 +231,7 @@ void smpi_global_destroy()
   smpi_do_once_duration_node_t curr, next;
 
   // processes
+  xbt_free(smpi_global->main_processes);
   xbt_free(smpi_global->sender_processes);
   xbt_free(smpi_global->receiver_processes);