Diff for /rpl/src/rpl.h between versions 1.320 and 1.327

version 1.320, 2018/12/21 10:56:23 version 1.327, 2019/02/06 14:23:26
Line 1 Line 1
 /*  /*
 ================================================================================  ================================================================================
   RPL/2 (R) version 4.1.29    RPL/2 (R) version 4.1.31
   Copyright (C) 1989-2018 Dr. BERTRAND Joël    Copyright (C) 1989-2019 Dr. BERTRAND Joël
   
   This file is part of RPL/2.    This file is part of RPL/2.
   
Line 397  union semun Line 397  union semun
 #       define sem_wait(a) ({ int value; sem_getvalue(a, &value); \  #       define sem_wait(a) ({ int value; sem_getvalue(a, &value); \
                 uprintf("[%d-%llu] Semaphore %s (%p) "\                  uprintf("[%d-%llu] Semaphore %s (%p) "\
                 "waiting at %s() " \                  "waiting at %s() " \
                 "line #%d\n", (int) getpid(), (unsigned long long) i\                  "line #%d <%d>\n", (int) getpid(), (unsigned long long) i\
                         pthread_self(), \                          pthread_self(), \
                 #a, a, __FUNCTION__, __LINE__), fflush(stdout); \                  #a, a, __FUNCTION__, __LINE__, value), fflush(stdout); \
                 if (value > 1) BUG(1, uprintf("Value %d\n", value)); \  
                 sem_wait_SysV(a); })                  sem_wait_SysV(a); })
 #   define sem_post(a) ({ int value; sem_getvalue(a, &value); \  #   define sem_post(a) ({ int value; sem_getvalue(a, &value); \
                 uprintf("[%d-%llu] Semaphore %s (%p) "\                  uprintf("[%d-%llu] Semaphore %s (%p) "\
                 "posting at %s() " \                  "posting at %s() " \
                 "line #%d\n", (int) getpid(), (unsigned long long) \                  "line #%d <%d>\n", (int) getpid(), (unsigned long long) \
                         pthread_self(), \                          pthread_self(), \
                 #a, a, __FUNCTION__, __LINE__), fflush(stdout); \                  #a, a, __FUNCTION__, __LINE__, value), fflush(stdout); \
                 if (value > 0) BUG(1, uprintf("Value %d\n", value)); \  
                 sem_post_SysV(a); })                  sem_post_SysV(a); })
 #   define sem_destroy(a) ({ int value; sem_getvalue(a, &value); \  #   define sem_destroy(a) ({ int value; sem_getvalue(a, &value); \
                 if (value == 0) BUG(1, uprintf("Value %d\n", value)); \                  if (value == 0) BUG(1, uprintf("Value %d\n", value)); \
Line 431  union semun Line 429  union semun
 #       define sem_wait(a) ({ int value; sem_getvalue(a, &value); \  #       define sem_wait(a) ({ int value; sem_getvalue(a, &value); \
                 uprintf("[%d-%llu] Semaphore %s (%p) "\                  uprintf("[%d-%llu] Semaphore %s (%p) "\
                 "waiting at %s() " \                  "waiting at %s() " \
                 "line #%d\n", (int) getpid(), (unsigned long long) \                  "line #%d <%d>\n", (int) getpid(), (unsigned long long) \
                         pthread_self(), \                          pthread_self(), \
                 #a, a, __FUNCTION__, __LINE__), fflush(stdout); \                  #a, a, __FUNCTION__, __LINE__, value), fflush(stdout); \
                 if (value > 1) BUG(1, uprintf("Value %d\n", value)); sem_wait(a); })                  sem_wait(a); })
 #       define sem_post(a) ({ int value; sem_getvalue(a, &value); \  #       define sem_post(a) ({ int value; sem_getvalue(a, &value); \
                 uprintf("[%d-%llu] Semaphore %s (%p) "\                  uprintf("[%d-%llu] Semaphore %s (%p) "\
                 "posting at %s() " \                  "posting at %s() " \
                 "line #%d\n", (int) getpid(), (unsigned long long) \                  "line #%d <%d>\n", (int) getpid(), (unsigned long long) \
                         pthread_self(), \                          pthread_self(), \
                 #a, a, __FUNCTION__, __LINE__), fflush(stdout); \                  #a, a, __FUNCTION__, __LINE__, value), fflush(stdout); \
                 if (value > 0) BUG(1, uprintf("Value %d\n", value)); sem_post(a); })                  sem_post(a); })
 #       define sem_destroy(a) ({ int value; sem_getvalue(a, &value); \  #       define sem_destroy(a) ({ int value; sem_getvalue(a, &value); \
                 if (value == 0) BUG(1, uprintf("Value %d\n", value)); \                  if (value == 0) BUG(1, uprintf("Value %d\n", value)); \
                 sem_destroy(a); })                  sem_destroy(a); })
Line 775  pid_t debug_fork(); Line 773  pid_t debug_fork();
 #define d_SPH                   "Semaphore $n 'name'"  #define d_SPH                   "Semaphore $n 'name'"
 #define d_TAB                   "<[ table ]>"  #define d_TAB                   "<[ table ]>"
 #define d_MTX                   "Mutex $n"  #define d_MTX                   "Mutex $n"
 #define d_REC                   "|[ <[ 'name_1' ... 'name_n' ]> " \  #define d_REC                   "|[ record ]|"
                                         "<[ data_1 ... data_n ]> ]|"  
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
Line 1585  typedef struct liste_pile_systeme Line 1582  typedef struct liste_pile_systeme
     logical1                    creation_variables_statiques;      logical1                    creation_variables_statiques;
     logical1                    creation_variables_partagees;      logical1                    creation_variables_partagees;
     logical1                    evaluation_expression;      logical1                    evaluation_expression;
       logical1                    debug_programme;
   
     unsigned char               clause;      unsigned char               clause;
   
Line 1775  typedef struct record Line 1773  typedef struct record
     struct_objet        *donnees;      struct_objet        *donnees;
 } struct_record;  } struct_record;
   
   
 /*  /*
 --------------------------------------------------------------------------------  --------------------------------------------------------------------------------
   Structure arbre    Structure arbre

Removed from v.1.320  
changed lines
  Added in v.1.327


CVSweb interface <joel.bertrand@systella.fr>