Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Additionnal checks for Henri ;)
[simgrid.git] / src / msg / gos.c
index 8262b62..ae67680 100644 (file)
@@ -67,6 +67,7 @@ MSG_error_t MSG_task_get_with_time_out(m_task_t * task,
   e_surf_action_state_t state = SURF_ACTION_NOT_IN_THE_SYSTEM;
   
   CHECK_HOST();
+  xbt_assert1((channel>=0) && (channel < msg_global->max_channel),"Invalid channel %d",channel);
   /* Sanity check */
   xbt_assert0(task,"Null pointer for the task\n");
 
@@ -164,11 +165,12 @@ int MSG_task_Iprobe(m_channel_t channel)
   m_host_t h = NULL;
   simdata_host_t h_simdata = NULL;
 
+  xbt_assert1((channel>=0) && (channel < msg_global->max_channel),"Invalid channel %d",channel);
   DEBUG2("Probing on channel %d (%s)", channel,h->name);
   CHECK_HOST();
   h = MSG_host_self();
   h_simdata = h->simdata;
-  return(xbt_fifo_getFirstItem(h_simdata->mbox[channel])!=NULL);
+  return(xbt_fifo_get_first_item(h_simdata->mbox[channel])!=NULL);
 }
 
 /** \ingroup msg_gos_functions
@@ -187,13 +189,14 @@ int MSG_task_probe_from(m_channel_t channel)
   xbt_fifo_item_t item;
   m_task_t t;
 
+  xbt_assert1((channel>=0) && (channel < msg_global->max_channel),"Invalid channel %d",channel);
   CHECK_HOST();
   h = MSG_host_self();
   h_simdata = h->simdata;
 
   DEBUG2("Probing on channel %d (%s)", channel,h->name);
    
-  item = xbt_fifo_getFirstItem(h->simdata->mbox[channel]);
+  item = xbt_fifo_get_first_item(h->simdata->mbox[channel]);
   if (!item || !(t = xbt_fifo_get_item_content(item)))
     return -1;
    
@@ -210,6 +213,7 @@ MSG_error_t MSG_channel_select_from(m_channel_t channel, double max_duration,
   int first_time = 1;
   m_process_t process = MSG_process_self();
 
+  xbt_assert1((channel>=0) && (channel < msg_global->max_channel),"Invalid channel %d",channel);
   if(PID) {
     *PID = -1;
   }
@@ -222,7 +226,7 @@ MSG_error_t MSG_channel_select_from(m_channel_t channel, double max_duration,
     h_simdata = h->simdata;
     
     DEBUG2("Probing on channel %d (%s)", channel,h->name);
-    while(!(item = xbt_fifo_getFirstItem(h->simdata->mbox[channel]))) {
+    while(!(item = xbt_fifo_get_first_item(h->simdata->mbox[channel]))) {
       if(max_duration>0) {
        if(!first_time) {
          MSG_RETURN(MSG_OK);
@@ -288,6 +292,8 @@ MSG_error_t MSG_task_put(m_task_t task,
 
   CHECK_HOST();
 
+  xbt_assert1((channel>=0) && (channel < msg_global->max_channel),"Invalid channel %d",channel);
+
   task_simdata = task->simdata;
   task_simdata->sender = process;
   xbt_assert0(task_simdata->using==1,"Gargl!");