Diff for /rpl/src/analyse.c between versions 1.60 and 1.61

version 1.60, 2011/10/10 10:58:12 version 1.61, 2011/10/14 08:13:05
Line 965  analyse(struct_processus *s_etat_process Line 965  analyse(struct_processus *s_etat_process
     static struct timeval           horodatage_initial;      static struct timeval           horodatage_initial;
     struct timeval                  horodatage_final;      struct timeval                  horodatage_final;
   
   #   ifndef OS2
     static struct rusage            usage_initial;      static struct rusage            usage_initial;
     struct rusage                   usage_final;      struct rusage                   usage_final;
   #   else
       static clock_t                  usage_initial;
       clock_t                         usage_final;
   #   endif
   
     struct timespec                 temporisation;      struct timespec                 temporisation;
   
Line 1156  analyse(struct_processus *s_etat_process Line 1161  analyse(struct_processus *s_etat_process
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
 */  */
   
 #   ifndef OS2  
     if ((*s_etat_processus).pourcentage_maximal_cpu < 100)      if ((*s_etat_processus).pourcentage_maximal_cpu < 100)
     {      {
   #       ifndef OS2
         getrusage(RUSAGE_SELF, &usage_final);          getrusage(RUSAGE_SELF, &usage_final);
   #       else
           usage_final = clock();
   #       endif
   
         gettimeofday(&horodatage_final, NULL);          gettimeofday(&horodatage_final, NULL);
   
         if (initialisation == d_vrai)          if (initialisation == d_vrai)
Line 1169  analyse(struct_processus *s_etat_process Line 1178  analyse(struct_processus *s_etat_process
                     (((real8) (horodatage_final.tv_usec -                      (((real8) (horodatage_final.tv_usec -
                     horodatage_initial.tv_usec)) / ((real8) 1E6));                      horodatage_initial.tv_usec)) / ((real8) 1E6));
   
               // Le temps depuis la dernière limitation est de plus de un
               // dixième de seconde.
   
             if (temps_reel >= 0.1)              if (temps_reel >= 0.1)
             {              {
   #               ifndef OS2
                 temps_cpu = ((real8) ((usage_final.ru_utime.tv_sec +                  temps_cpu = ((real8) ((usage_final.ru_utime.tv_sec +
                         usage_final.ru_stime.tv_sec) -                          usage_final.ru_stime.tv_sec) -
                         (usage_initial.ru_utime.tv_sec +                          (usage_initial.ru_utime.tv_sec +
Line 1179  analyse(struct_processus *s_etat_process Line 1192  analyse(struct_processus *s_etat_process
                         usage_final.ru_stime.tv_usec) -                          usage_final.ru_stime.tv_usec) -
                         (usage_initial.ru_utime.tv_usec +                          (usage_initial.ru_utime.tv_usec +
                         usage_initial.ru_stime.tv_usec))) / ((real8) 1E6));                          usage_initial.ru_stime.tv_usec))) / ((real8) 1E6));
   #               else
                   temps_cpu = (usage_final - usage_initial) / CLOCKS_PER_SEC;
   #               endif
   
                 pourcentage = 100 * temps_cpu / temps_reel;                  pourcentage = 100 * temps_cpu / temps_reel;
   
Line 1197  analyse(struct_processus *s_etat_process Line 1213  analyse(struct_processus *s_etat_process
                     temporisation.tv_nsec = (attente - temporisation.tv_sec) *                      temporisation.tv_nsec = (attente - temporisation.tv_sec) *
                             1E9;                              1E9;
   
                     nanosleep(&temporisation, NULL);                      while(nanosleep(&temporisation, &temporisation) == -1);
                 }                  }
   
                 horodatage_initial = horodatage_final;                  horodatage_initial = horodatage_final;
Line 1212  analyse(struct_processus *s_etat_process Line 1228  analyse(struct_processus *s_etat_process
             usage_initial = usage_final;              usage_initial = usage_final;
         }          }
     }      }
 #   endif      else
       {
           initialisation = d_faux;
       }
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------

Removed from v.1.60  
changed lines
  Added in v.1.61


CVSweb interface <joel.bertrand@systella.fr>