X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=include%2Fldap_int_thread.h;h=385fef52f64dae40f1fce5d7c1a5874e73b9b48e;hb=5631f25839a4a83521993639a96909267ea7bce6;hp=5da7f13c176816f119170d49c443f68869cb6726;hpb=f192014c1a738f51bcc1b0fd91909ad234eea91f;p=openldap diff --git a/include/ldap_int_thread.h b/include/ldap_int_thread.h index 5da7f13c17..385fef52f6 100644 --- a/include/ldap_int_thread.h +++ b/include/ldap_int_thread.h @@ -1,20 +1,22 @@ +/* ldap_int_thread.h - ldap internal thread wrappers header file */ /* $OpenLDAP$ */ -/* - * Copyright 1998-2000 The OpenLDAP Foundation, Redwood City, California, USA +/* This work is part of OpenLDAP Software . + * + * Copyright 1998-2005 The OpenLDAP Foundation. * 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 in file LICENSE in the + * top-level directory of the distribution or, alternatively, at + * . */ -/* 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,15 +43,15 @@ 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 defined( HAVE_PTHREAD_RWLOCK_DESTROY ) +#if 0 && defined( HAVE_PTHREAD_RWLOCK_DESTROY ) #define LDAP_THREAD_HAVE_RDWR 1 typedef pthread_rwlock_t ldap_pvt_thread_rdwr_t; #endif @@ -63,7 +65,11 @@ LDAP_END_DECL * * **********************************/ -#include +#if defined( HAVE_MACH_CTHREADS_H ) +# include +#elif defined( HAVE_CTHREAD_H +# include +#endif LDAP_BEGIN_DECL @@ -89,8 +95,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 ) /******************************************** @@ -111,10 +121,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 @@ -128,6 +138,7 @@ LDAP_END_DECL #include #include +#define LDAP_THREAD_HAVE_SLEEP 1 LDAP_BEGIN_DECL @@ -145,11 +156,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; @@ -165,96 +176,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 )); +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 ); -LIBLDAP_F( unsigned int ) -ldap_int_thread_sleep LDAP_P(( unsigned int s )); - -#ifdef HAVE_GETCONCURRENCY -LIBLDAP_F( int ) -ldap_int_thread_get_concurrency LDAP_P(( void )); -#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 )); +#ifndef LDAP_THREAD_HAVE_TPOOL +typedef struct ldap_int_thread_pool_s * ldap_int_thread_pool_t; #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 */