[BACK]Return to pthread.h CVS log [TXT][DIR] Up to [local] / src / include

Diff for /src/include/pthread.h between version 1.1 and 1.2

version 1.1, 2017/10/15 23:40:33 version 1.2, 2017/10/28 21:23:14
Line 180 
Line 180 
 #define PTHREAD_MUTEX_DEFAULT           PTHREAD_MUTEX_STRICT_NP  #define PTHREAD_MUTEX_DEFAULT           PTHREAD_MUTEX_STRICT_NP
   
 /*  /*
    * On-stack structure for the pthread_cleanup_{push,pop} macros
    * The actual values are xor'ed with random cookies.
    */
   struct __thread_cleanup {
           __uintptr_t __tc_magic;
           __uintptr_t __tc_next;
           __uintptr_t __tc_fn;
           __uintptr_t __tc_arg;
   };
   
   /*
    * These macro must be used in pairs in the same scope, such that
    * pthread_cleanup_push() can start a block declaring a variable and
    * pthread_cleanup_pop() closes that same block.  Any other usage
    * violates the requirements of the POSIX and Single UNIX standards.
    */
   #define pthread_cleanup_push(cb, arg)                                   \
           {       /* MATCHED BY CLOSE BRACKET IN pthread_cleanup_pop() */ \
                   struct __thread_cleanup __tc;                           \
                   _thread_cleanup_push(cb, arg, &__tc);
   
   #define pthread_cleanup_pop(execute)                                    \
                   _thread_cleanup_pop(execute, &__tc);                    \
           }       /* MATCHED BY OPEN BRACKET IN pthread_cleanup_push() */
   
   
   
   /*
  * Thread function prototype definitions:   * Thread function prototype definitions:
  */   */
 __BEGIN_DECLS  __BEGIN_DECLS
   void            _thread_cleanup_pop(int _execute, struct __thread_cleanup *_tc);
   void            _thread_cleanup_push(void (*_fn)(void *), void *_arg,
                       struct __thread_cleanup *_tc);
 int             pthread_atfork(void (*)(void), void (*)(void), void (*)(void));  int             pthread_atfork(void (*)(void), void (*)(void), void (*)(void));
 int             pthread_attr_destroy(pthread_attr_t *);  int             pthread_attr_destroy(pthread_attr_t *);
 int             pthread_attr_getstack(const pthread_attr_t *,  int             pthread_attr_getstack(const pthread_attr_t *,
Line 197 
Line 228 
 int             pthread_attr_setstackaddr(pthread_attr_t *, void *);  int             pthread_attr_setstackaddr(pthread_attr_t *, void *);
 int             pthread_attr_setguardsize(pthread_attr_t *, size_t);  int             pthread_attr_setguardsize(pthread_attr_t *, size_t);
 int             pthread_attr_setdetachstate(pthread_attr_t *, int);  int             pthread_attr_setdetachstate(pthread_attr_t *, int);
 void            pthread_cleanup_pop(int);  
 void            pthread_cleanup_push(void (*) (void *), void *routine_arg);  
 int             pthread_condattr_destroy(pthread_condattr_t *);  int             pthread_condattr_destroy(pthread_condattr_t *);
 int             pthread_condattr_init(pthread_condattr_t *);  int             pthread_condattr_init(pthread_condattr_t *);
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2