Diff for /include/ldap_int_thread.h between versions 1.7 and 1.25

version 1.7, 2000/06/18 17:48:08 version 1.25, 2007/01/10 23:55:26
Line 1 Line 1
 /* $OpenLDAP: pkg/ldap/include/ldap_int_thread.h,v 1.21 2000/05/19 18:47:32 kurt Exp $ */  /* ldap_int_thread.h - ldap internal thread wrappers header file */
 /*  /* $OpenLDAP: pkg/ldap/include/ldap_int_thread.h,v 1.24 2007/01/10 00:29:16 hyc Exp $ */
  * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA  /* This work is part of OpenLDAP Software <http://www.openldap.org/>.
    * 
    * Copyright 1998-2007 The OpenLDAP Foundation.
  * All rights reserved.   * All rights reserved.
  *   *
  * Redistribution and use in source and binary forms are permitted only   * Redistribution and use in source and binary forms, with or without
  * as authorized by the OpenLDAP Public License.  A copy of this   * modification, are permitted only as authorized by the OpenLDAP
  * license is available at http://www.OpenLDAP.org/license.html or   * Public License.
  * in file LICENSE in the top-level directory of the distribution.   *
    * A copy of this license is available in file LICENSE in the
    * top-level directory of the distribution or, alternatively, at
    * <http://www.OpenLDAP.org/license.html>.
  */   */
 /* ldap_int_thread.h - ldap internal thread wrappers header file */  
   
   LDAP_BEGIN_DECL
   
   /* Can be done twice in libldap_r.  See libldap_r/ldap_thr_debug.h. */
   LDAP_F(int) ldap_int_thread_initialize LDAP_P(( void ));
   LDAP_F(int) ldap_int_thread_destroy    LDAP_P(( void ));
   
   LDAP_END_DECL
   
   
 #ifndef _LDAP_INT_THREAD_H  #ifndef _LDAP_INT_THREAD_H
 #define _LDAP_INT_THREAD_H  #define _LDAP_INT_THREAD_H
Line 31  typedef pthread_t  ldap_int_thread_t; Line 45  typedef pthread_t  ldap_int_thread_t;
 typedef pthread_mutex_t         ldap_int_thread_mutex_t;  typedef pthread_mutex_t         ldap_int_thread_mutex_t;
 typedef pthread_cond_t          ldap_int_thread_cond_t;  typedef pthread_cond_t          ldap_int_thread_cond_t;
   
   #define ldap_int_thread_equal(a, b)     pthread_equal((a), (b))
   
 #if defined( _POSIX_REENTRANT_FUNCTIONS ) || \  #if defined( _POSIX_REENTRANT_FUNCTIONS ) || \
         defined( _POSIX_THREAD_SAFE_FUNCTIONS ) || \          defined( _POSIX_THREAD_SAFE_FUNCTIONS ) || \
         defined( _POSIX_THREADSAFE_FUNCTIONS )          defined( _POSIX_THREADSAFE_FUNCTIONS )
Line 47  typedef pthread_cond_t  ldap_int_thread_ Line 63  typedef pthread_cond_t  ldap_int_thread_
 #define LDAP_THREAD_HAVE_SETCONCURRENCY 1  #define LDAP_THREAD_HAVE_SETCONCURRENCY 1
 #endif  #endif
   
 #if 0 && defined( HAVE_PTHREAD_RWLOCK_DESTROY )  #if defined( HAVE_PTHREAD_RWLOCK_DESTROY )
 #define LDAP_THREAD_HAVE_RDWR 1  #define LDAP_THREAD_HAVE_RDWR 1
 typedef pthread_rwlock_t ldap_pvt_thread_rdwr_t;  typedef pthread_rwlock_t ldap_int_thread_rdwr_t;
 #endif  #endif
   
 LDAP_END_DECL  LDAP_END_DECL
Line 61  LDAP_END_DECL Line 77  LDAP_END_DECL
  *                                *   *                                *
  **********************************/   **********************************/
   
 #include <mach/cthreads.h>  #if defined( HAVE_MACH_CTHREADS_H )
   #       include <mach/cthreads.h>
   #elif defined( HAVE_CTHREAD_H
   #       include <cthreads.h>
   #endif
   
 LDAP_BEGIN_DECL  LDAP_BEGIN_DECL
   
Line 89  typedef pth_cond_t ldap_int_thread_cond_ Line 109  typedef pth_cond_t ldap_int_thread_cond_
   
 #if 0  #if 0
 #define LDAP_THREAD_HAVE_RDWR 1  #define LDAP_THREAD_HAVE_RDWR 1
 typedef pth_rwlock_t ldap_pvt_thread_rdwr_t;  typedef pth_rwlock_t ldap_int_thread_rdwr_t;
 #endif  #endif
   
 LDAP_END_DECL  LDAP_END_DECL
Line 147  typedef struct ldap_int_thread_lwp_cv ld Line 167  typedef struct ldap_int_thread_lwp_cv ld
 LDAP_END_DECL  LDAP_END_DECL
   
 #elif defined(HAVE_NT_THREADS)  #elif defined(HAVE_NT_THREADS)
   /*************************************
    *                                   *
    * thread definitions for NT threads *
    *                                   *
    *************************************/
   
 #include <process.h>  #include <process.h>
 #include <windows.h>  #include <windows.h>
Line 160  typedef HANDLE ldap_int_thread_cond_t; Line 185  typedef HANDLE ldap_int_thread_cond_t;
 LDAP_END_DECL  LDAP_END_DECL
   
 #else  #else
   
 /***********************************  /***********************************
  *                                 *   *                                 *
  * thread definitions for no       *   * thread definitions for no       *
Line 185  LDAP_END_DECL Line 209  LDAP_END_DECL
   
 #endif /* no threads support */  #endif /* no threads support */
   
   
 LDAP_BEGIN_DECL  LDAP_BEGIN_DECL
   
 LDAP_F(int) ldap_int_thread_initialize LDAP_P(( void ));  #ifndef ldap_int_thread_equal
 LDAP_F(int) ldap_int_thread_destroy LDAP_P(( void ));  #define ldap_int_thread_equal(a, b)     ((a) == (b))
   #endif
   
   #ifndef LDAP_THREAD_HAVE_RDWR
   typedef struct ldap_int_thread_rdwr_s * ldap_int_thread_rdwr_t;
   #endif
   
 LDAP_F(int) ldap_int_thread_pool_startup ( void );  LDAP_F(int) ldap_int_thread_pool_startup ( void );
 LDAP_F(int) ldap_int_thread_pool_shutdown ( void );  LDAP_F(int) ldap_int_thread_pool_shutdown ( void );
   
Line 196  LDAP_F(int) ldap_int_thread_pool_shutdow Line 227  LDAP_F(int) ldap_int_thread_pool_shutdow
 typedef struct ldap_int_thread_pool_s * ldap_int_thread_pool_t;  typedef struct ldap_int_thread_pool_s * ldap_int_thread_pool_t;
 #endif  #endif
   
   typedef struct ldap_int_thread_rmutex_s * ldap_int_thread_rmutex_t;
   LDAP_END_DECL
   
   
   #if defined(LDAP_THREAD_DEBUG) && !((LDAP_THREAD_DEBUG +0) & 2U)
   #define LDAP_THREAD_DEBUG_WRAP 1
   #endif
   
   #ifdef LDAP_THREAD_DEBUG_WRAP
   /**************************************
    *                                    *
    * definitions for type-wrapped debug *
    *                                    *
    **************************************/
   
   LDAP_BEGIN_DECL
   
   #ifndef LDAP_UINTPTR_T  /* May be configured in CPPFLAGS */
   #define LDAP_UINTPTR_T  unsigned long
   #endif
   
   typedef enum {
           ldap_debug_magic =      -(int) (((unsigned)-1)/19)
   } ldap_debug_magic_t;
   
   typedef enum {
           /* Could fill in "locked" etc here later */
           ldap_debug_state_inited = (int) (((unsigned)-1)/11),
           ldap_debug_state_destroyed
   } ldap_debug_state_t;
   
   typedef struct {
           /* Enclosed in magic numbers in the hope of catching overwrites */
           ldap_debug_magic_t      magic;  /* bit pattern to recognize usages  */
           LDAP_UINTPTR_T          self;   /* ~(LDAP_UINTPTR_T)&(this struct) */
           union ldap_debug_mem_u {        /* Dummy memory reference */
                   unsigned char   *ptr;
                   LDAP_UINTPTR_T  num;
           } mem;
           ldap_debug_state_t      state;  /* doubles as another magic number */
   } ldap_debug_usage_info_t;
   
   typedef struct {
           ldap_int_thread_mutex_t wrapped;
           ldap_debug_usage_info_t usage;
           ldap_int_thread_t       owner;
   } ldap_debug_thread_mutex_t;
   
   typedef struct {
           ldap_int_thread_cond_t  wrapped;
           ldap_debug_usage_info_t usage;
   } ldap_debug_thread_cond_t;
   
   typedef struct {
           ldap_int_thread_rdwr_t  wrapped;
           ldap_debug_usage_info_t usage;
   } ldap_debug_thread_rdwr_t;
   
   #ifndef NDEBUG
   #define LDAP_INT_THREAD_ASSERT_MUTEX_OWNER(mutex) \
           ldap_debug_thread_assert_mutex_owner( \
                   __FILE__, __LINE__, "owns(" #mutex ")", mutex )
   LDAP_F(void) ldap_debug_thread_assert_mutex_owner LDAP_P((
           LDAP_CONST char *file,
           int line,
           LDAP_CONST char *msg,
           ldap_debug_thread_mutex_t *mutex ));
   #endif /* NDEBUG */
   
 LDAP_END_DECL  LDAP_END_DECL
   
   #endif /* LDAP_THREAD_DEBUG_WRAP */
   
 #endif /* _LDAP_INT_THREAD_H */  #endif /* _LDAP_INT_THREAD_H */

Removed from v.1.7  
changed lines
  Added in v.1.25


______________
© Copyright 1998-2020, OpenLDAP Foundation, info@OpenLDAP.org