X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldap_int_thread.h;h=eb2d39c370c6a7433ce524bd3034c7fa05159a19;hb=e08ba251017dc755694dc81e8387adb43e498749;hp=7f0257cdfaf4f1823015330eeff25d8379836633;hpb=72bf2552ebbcc15db956d0407d00c4a8ad863abb;p=openldap diff --git a/include/ldap_int_thread.h b/include/ldap_int_thread.h index 7f0257cdfa..eb2d39c370 100644 --- a/include/ldap_int_thread.h +++ b/include/ldap_int_thread.h @@ -1,20 +1,19 @@ /* $OpenLDAP$ */ /* - * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA + * Copyright 1998-2003 The OpenLDAP Foundation, Redwood City, California, USA * All rights reserved. * - * Redistribution and use in source and binary forms are permitted only - * as authorized by the OpenLDAP Public License. A copy of this - * license is available at http://www.OpenLDAP.org/license.html or - * in file LICENSE in the top-level directory of the distribution. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted only as authorized by the OpenLDAP + * Public License. A copy of this license is available at + * http://www.OpenLDAP.org/license.html or in file LICENSE in the + * top-level directory of the distribution. */ /* ldap_int_thread.h - ldap internal thread wrappers header file */ #ifndef _LDAP_INT_THREAD_H #define _LDAP_INT_THREAD_H -#include "ldap_cdefs.h" - #if defined( HAVE_PTHREADS ) /********************************** * * @@ -41,12 +40,17 @@ typedef pthread_cond_t ldap_int_thread_cond_t; #if defined( HAVE_PTHREAD_GETCONCURRENCY ) || \ defined( HAVE_THR_GETCONCURRENCY ) -#define HAVE_GETCONCURRENCY 1 +#define LDAP_THREAD_HAVE_GETCONCURRENCY 1 #endif #if defined( HAVE_PTHREAD_SETCONCURRENCY ) || \ defined( HAVE_THR_SETCONCURRENCY ) -#define HAVE_SETCONCURRENCY 1 +#define LDAP_THREAD_HAVE_SETCONCURRENCY 1 +#endif + +#if 0 && defined( HAVE_PTHREAD_RWLOCK_DESTROY ) +#define LDAP_THREAD_HAVE_RDWR 1 +typedef pthread_rwlock_t ldap_pvt_thread_rdwr_t; #endif LDAP_END_DECL @@ -58,7 +62,11 @@ LDAP_END_DECL * * **********************************/ -#include +#if defined( HAVE_MACH_CTHREADS_H ) +# include +#elif defined( HAVE_CTHREAD_H +# include +#endif LDAP_BEGIN_DECL @@ -84,8 +92,12 @@ typedef pth_t ldap_int_thread_t; typedef pth_mutex_t ldap_int_thread_mutex_t; typedef pth_cond_t ldap_int_thread_cond_t; -LDAP_END_DECL +#if 0 +#define LDAP_THREAD_HAVE_RDWR 1 +typedef pth_rwlock_t ldap_pvt_thread_rdwr_t; +#endif +LDAP_END_DECL #elif defined( HAVE_THR ) /******************************************** @@ -106,10 +118,10 @@ typedef cond_t ldap_int_thread_cond_t; #define HAVE_REENTRANT_FUNCTIONS 1 #ifdef HAVE_THR_GETCONCURRENCY -#define HAVE_GETCONCURRENCY 1 +#define LDAP_THREAD_HAVE_GETCONCURRENCY 1 #endif #ifdef HAVE_THR_SETCONCURRENCY -#define HAVE_SETCONCURRENCY 1 +#define LDAP_THREAD_HAVE_SETCONCURRENCY 1 #endif LDAP_END_DECL @@ -123,6 +135,7 @@ LDAP_END_DECL #include #include +#define LDAP_THREAD_HAVE_SLEEP 1 LDAP_BEGIN_DECL @@ -140,11 +153,11 @@ LDAP_END_DECL #elif defined(HAVE_NT_THREADS) -LDAP_BEGIN_DECL - #include #include +LDAP_BEGIN_DECL + typedef unsigned long ldap_int_thread_t; typedef HANDLE ldap_int_thread_mutex_t; typedef HANDLE ldap_int_thread_cond_t; @@ -160,96 +173,34 @@ LDAP_END_DECL * * ***********************************/ -LDAP_BEGIN_DECL - #ifndef NO_THREADS #define NO_THREADS 1 #endif +LDAP_BEGIN_DECL + typedef int ldap_int_thread_t; typedef int ldap_int_thread_mutex_t; typedef int ldap_int_thread_cond_t; +#define LDAP_THREAD_HAVE_TPOOL 1 +typedef int ldap_int_thread_pool_t; + LDAP_END_DECL #endif /* no threads support */ LDAP_BEGIN_DECL -LIBLDAP_F( int ) -ldap_int_thread_initialize LDAP_P(( void )); - -LIBLDAP_F( int ) -ldap_int_thread_destroy LDAP_P(( void )); - -LIBLDAP_F( unsigned int ) -ldap_int_thread_sleep LDAP_P(( unsigned int s )); +LDAP_F(int) ldap_int_thread_initialize LDAP_P(( void )); +LDAP_F(int) ldap_int_thread_destroy LDAP_P(( void )); +LDAP_F(int) ldap_int_thread_pool_startup ( void ); +LDAP_F(int) ldap_int_thread_pool_shutdown ( void ); -#ifdef HAVE_GETCONCURRENCY -LIBLDAP_F( int ) -ldap_int_thread_get_concurrency LDAP_P(( void )); +#ifndef LDAP_THREAD_HAVE_TPOOL +typedef struct ldap_int_thread_pool_s * ldap_int_thread_pool_t; #endif -#ifdef HAVE_SETCONCURRENCY -# ifndef LDAP_THREAD_CONCURRENCY - /* three concurrent threads should be enough */ -# define LDAP_THREAD_CONCURRENCY 3 -# endif -LIBLDAP_F( int ) -ldap_int_thread_set_concurrency LDAP_P(( int )); -#endif - -LIBLDAP_F( int ) -ldap_int_thread_create LDAP_P(( - ldap_int_thread_t * thread, - int detach, - void *(*start_routine)( void * ), - void *arg)); - -LIBLDAP_F( void ) -ldap_int_thread_exit LDAP_P(( void *retval )); - -LIBLDAP_F( int ) -ldap_int_thread_join LDAP_P(( ldap_int_thread_t thread, void **status )); - -LIBLDAP_F( int ) -ldap_int_thread_kill LDAP_P(( ldap_int_thread_t thread, int signo )); - -LIBLDAP_F( int ) -ldap_int_thread_yield LDAP_P(( void )); - -LIBLDAP_F( int ) -ldap_int_thread_cond_init LDAP_P(( ldap_int_thread_cond_t *cond )); - -LIBLDAP_F( int ) -ldap_int_thread_cond_destroy LDAP_P(( ldap_int_thread_cond_t *cond )); - -LIBLDAP_F( int ) -ldap_int_thread_cond_signal LDAP_P(( ldap_int_thread_cond_t *cond )); - -LIBLDAP_F( int ) -ldap_int_thread_cond_broadcast LDAP_P(( ldap_int_thread_cond_t *cond )); - -LIBLDAP_F( int ) -ldap_int_thread_cond_wait LDAP_P(( - ldap_int_thread_cond_t *cond, - ldap_int_thread_mutex_t *mutex )); - -LIBLDAP_F( int ) -ldap_int_thread_mutex_init LDAP_P(( ldap_int_thread_mutex_t *mutex )); - -LIBLDAP_F( int ) -ldap_int_thread_mutex_destroy LDAP_P(( ldap_int_thread_mutex_t *mutex )); - -LIBLDAP_F( int ) -ldap_int_thread_mutex_lock LDAP_P(( ldap_int_thread_mutex_t *mutex )); - -LIBLDAP_F( int ) -ldap_int_thread_mutex_trylock LDAP_P(( ldap_int_thread_mutex_t *mutex )); - -LIBLDAP_F( int ) -ldap_int_thread_mutex_unlock LDAP_P(( ldap_int_thread_mutex_t *mutex )); - LDAP_END_DECL #endif /* _LDAP_INT_THREAD_H */