openldap/libraries/libldap_r/ldap_thr_debug.h

176 lines
7.3 KiB
C
Raw Normal View History

/* ldap_thr_debug.h - preprocessor magic for LDAP_THREAD_DEBUG */
/* $OpenLDAP$ */
/* This work is part of OpenLDAP Software <http://www.openldap.org/>.
*
* Copyright 2005 The OpenLDAP Foundation.
* All rights reserved.
*
* 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 the file LICENSE in the
* top-level directory of the distribution or, alternatively, at
* <http://www.OpenLDAP.org/license.html>.
*/
#ifdef LDAP_THREAD_DEBUG
/*
* libldap_r .c files should include this file after ldap_pvt_thread.h,
* with the appropriate LDAP_THREAD*_IMPLEMENTATION macro defined.
*/
#ifndef _LDAP_PVT_THREAD_H
#error "ldap_pvt_thread.h" must be included before "ldap_thr_debug.h"
#endif
/*
* Support for thr_debug.c:
*
* thr_debug.c defines the ldap_pvt_*() as wrappers around
* ldap_int_*(), and ldap_debug_*() around ldap_int_*().
*
* Renames ldap_pvt_thread_* names to ldap_int_thread_*, and a few
* ldap_int_*() names to ldap_debug_*(). Includes "ldap_pvt_thread.h"
* to declare these renamed functions, and undefines the macros
* afterwards when included from thr_debug.c. So,
*
* libldap_r/<not thr_debug.c> define ldap_int_* instead of ldap_pvt_*.
* In thread.c, ldap_pvt_thread_<initialize/destroy>() will call
* ldap_debug_*() instead of ldap_int_*().
* In tpool.c, ldap_int_thread_pool_shutdown() has thr_debug support
* which treats ldap_pvt_thread_pool_destroy() the same way.
*/
#ifndef LDAP_THREAD_IMPLEMENTATION /* for first part of threads.c */
#define ldap_int_thread_initialize ldap_debug_thread_initialize
#define ldap_int_thread_destroy ldap_debug_thread_destroy
#else /* LDAP_THREAD_IMPLEMENTATION -- for thr_*.c and end of threads.c */
#undef ldap_int_thread_initialize
#undef ldap_int_thread_destroy
#ifdef LDAP_THREAD_DEBUG_WRAP /* see ldap_pvt_thread.h */
#define ldap_pvt_thread_mutex_t ldap_int_thread_mutex_t
#define ldap_pvt_thread_cond_t ldap_int_thread_cond_t
#endif
#define ldap_pvt_thread_sleep ldap_int_thread_sleep
#define ldap_pvt_thread_get_concurrency ldap_int_thread_get_concurrency
#define ldap_pvt_thread_set_concurrency ldap_int_thread_set_concurrency
#define ldap_pvt_thread_create ldap_int_thread_create
#define ldap_pvt_thread_exit ldap_int_thread_exit
#define ldap_pvt_thread_join ldap_int_thread_join
#define ldap_pvt_thread_kill ldap_int_thread_kill
#define ldap_pvt_thread_yield ldap_int_thread_yield
#define ldap_pvt_thread_cond_init ldap_int_thread_cond_init
#define ldap_pvt_thread_cond_destroy ldap_int_thread_cond_destroy
#define ldap_pvt_thread_cond_signal ldap_int_thread_cond_signal
#define ldap_pvt_thread_cond_broadcast ldap_int_thread_cond_broadcast
#define ldap_pvt_thread_cond_wait ldap_int_thread_cond_wait
#define ldap_pvt_thread_mutex_init ldap_int_thread_mutex_init
#define ldap_pvt_thread_mutex_destroy ldap_int_thread_mutex_destroy
#define ldap_pvt_thread_mutex_lock ldap_int_thread_mutex_lock
#define ldap_pvt_thread_mutex_trylock ldap_int_thread_mutex_trylock
#define ldap_pvt_thread_mutex_unlock ldap_int_thread_mutex_unlock
#define ldap_pvt_thread_self ldap_int_thread_self
#endif /* LDAP_THREAD_IMPLEMENTATION */
#ifdef LDAP_THREAD_RDWR_IMPLEMENTATION /* rdwr.c, thr_debug.c */
#ifdef LDAP_THREAD_DEBUG_WRAP /* see ldap_pvt_thread.h */
#define ldap_pvt_thread_rdwr_t ldap_int_thread_rdwr_t
#endif
#define ldap_pvt_thread_rdwr_init ldap_int_thread_rdwr_init
#define ldap_pvt_thread_rdwr_destroy ldap_int_thread_rdwr_destroy
#define ldap_pvt_thread_rdwr_rlock ldap_int_thread_rdwr_rlock
#define ldap_pvt_thread_rdwr_rtrylock ldap_int_thread_rdwr_rtrylock
#define ldap_pvt_thread_rdwr_runlock ldap_int_thread_rdwr_runlock
#define ldap_pvt_thread_rdwr_wlock ldap_int_thread_rdwr_wlock
#define ldap_pvt_thread_rdwr_wtrylock ldap_int_thread_rdwr_wtrylock
#define ldap_pvt_thread_rdwr_wunlock ldap_int_thread_rdwr_wunlock
#define ldap_pvt_thread_rdwr_readers ldap_int_thread_rdwr_readers
#define ldap_pvt_thread_rdwr_writers ldap_int_thread_rdwr_writers
#define ldap_pvt_thread_rdwr_active ldap_int_thread_rdwr_active
#endif /* LDAP_THREAD_RDWR_IMPLEMENTATION */
#ifdef LDAP_THREAD_POOL_IMPLEMENTATION /* tpool.c, thr_stub.c, thr_debug.c */
#ifdef LDAP_THREAD_DEBUG_WRAP /* see ldap_pvt_thread.h */
#define ldap_pvt_thread_pool_t ldap_int_thread_pool_t
#endif
#define ldap_pvt_thread_pool_init ldap_int_thread_pool_init
#define ldap_pvt_thread_pool_submit ldap_int_thread_pool_submit
#define ldap_pvt_thread_pool_maxthreads ldap_int_thread_pool_maxthreads
#define ldap_pvt_thread_pool_backload ldap_int_thread_pool_backload
#define ldap_pvt_thread_pool_pause ldap_int_thread_pool_pause
#define ldap_pvt_thread_pool_resume ldap_int_thread_pool_resume
#define ldap_pvt_thread_pool_destroy ldap_int_thread_pool_destroy
#define ldap_pvt_thread_pool_getkey ldap_int_thread_pool_getkey
#define ldap_pvt_thread_pool_setkey ldap_int_thread_pool_setkey
#define ldap_pvt_thread_pool_purgekey ldap_int_thread_pool_purgekey
#define ldap_pvt_thread_pool_context ldap_int_thread_pool_context
#define ldap_pvt_thread_pool_context_reset ldap_int_thread_pool_context_reset
#endif /* LDAP_THREAD_POOL_IMPLEMENTATION */
#undef _LDAP_PVT_THREAD_H
#include "ldap_pvt_thread.h"
#ifdef LDAP_THREAD_POOL_IMPLEMENTATION /* tpool.c */
/*
* tpool.c:ldap_int_thread_pool_shutdown() needs this. Could not
* use it for ldap_pvt_thread.h above because of its use of LDAP_P().
*/
#undef ldap_pvt_thread_pool_destroy
#define ldap_pvt_thread_pool_destroy(p,r) ldap_int_thread_pool_destroy(p,r)
#endif
#ifdef LDAP_THREAD_DEBUG_IMPLEMENTATION /* thr_debug.c */
#undef ldap_pvt_thread_mutex_t
#undef ldap_pvt_thread_cond_t
#undef ldap_pvt_thread_sleep
#undef ldap_pvt_thread_get_concurrency
#undef ldap_pvt_thread_set_concurrency
#undef ldap_pvt_thread_create
#undef ldap_pvt_thread_exit
#undef ldap_pvt_thread_join
#undef ldap_pvt_thread_kill
#undef ldap_pvt_thread_yield
#undef ldap_pvt_thread_cond_init
#undef ldap_pvt_thread_cond_destroy
#undef ldap_pvt_thread_cond_signal
#undef ldap_pvt_thread_cond_broadcast
#undef ldap_pvt_thread_cond_wait
#undef ldap_pvt_thread_mutex_init
#undef ldap_pvt_thread_mutex_destroy
#undef ldap_pvt_thread_mutex_lock
#undef ldap_pvt_thread_mutex_trylock
#undef ldap_pvt_thread_mutex_unlock
#undef ldap_pvt_thread_self
/* LDAP_THREAD_RDWR_IMPLEMENTATION: */
#undef ldap_pvt_thread_rdwr_t
#undef ldap_pvt_thread_rdwr_init
#undef ldap_pvt_thread_rdwr_destroy
#undef ldap_pvt_thread_rdwr_rlock
#undef ldap_pvt_thread_rdwr_rtrylock
#undef ldap_pvt_thread_rdwr_runlock
#undef ldap_pvt_thread_rdwr_wlock
#undef ldap_pvt_thread_rdwr_wtrylock
#undef ldap_pvt_thread_rdwr_wunlock
#undef ldap_pvt_thread_rdwr_readers
#undef ldap_pvt_thread_rdwr_writers
#undef ldap_pvt_thread_rdwr_active
/* LDAP_THREAD_POOL_IMPLEMENTATION: */
#undef ldap_pvt_thread_pool_t
#undef ldap_pvt_thread_pool_init
#undef ldap_pvt_thread_pool_submit
#undef ldap_pvt_thread_pool_maxthreads
#undef ldap_pvt_thread_pool_backload
#undef ldap_pvt_thread_pool_pause
#undef ldap_pvt_thread_pool_resume
#undef ldap_pvt_thread_pool_destroy
#undef ldap_pvt_thread_pool_getkey
#undef ldap_pvt_thread_pool_setkey
#undef ldap_pvt_thread_pool_purgekey
#undef ldap_pvt_thread_pool_context
#undef ldap_pvt_thread_pool_context_reset
#endif /* LDAP_THREAD_DEBUG_IMPLEMENTATION */
#endif /* LDAP_THREAD_DEBUG */