Commit Graph

51 Commits

Author SHA1 Message Date
Pierangelo Masarati
cad751250e allow mutex ownership detection (thanks to Hallvard) 2006-04-01 19:00:37 +00:00
Kurt Zeilenga
acbb5cf689 Happy new year! 2006-01-03 23:11:52 +00:00
Pierangelo Masarati
d277c5b3d6 silence SLAP_SEM_LOAD_CONTROL related warnings... 2005-10-16 08:58:06 +00:00
Hallvard Furuseth
123948bd5e Add thread debugging wrapper thr_debug.c and ldap_thr_debug.h in libldap_r/,
enabled with LDAP_THREAD_DEBUG (cpp macro and environment variable):

Move any ldap_pvt_* definitions from ldap_int_thread.h to ldap_pvt_thread.h.
#define ldap_int_thread_equal/ldap_pvt_thread_equal instead of tpool.c:TID_EQ.
Define some ldap_debug_*_t types, and LDAP_UINTPTR_T, in ldap_int_thread.h.
ldap_int_thread.h/ldap_pvt_thread.h can now be included multiple times, giving
different results depending on whether libldap_r/ldap_thr_debug.h was included.
Add some cleanup and some preprocessor hacks.
#define LDAP_THREAD*_IMPLEMENTATION in libldap_r/*.c, used by ldap_thr_debug.h.
Add PTHREAD_MUTEX_ERRORCHECK/PTHREAD_MUTEX_ERRORCHECK_NP in thr_posix.c.
2005-09-17 23:28:08 +00:00
Howard Chu
1f78e2b831 ITS#3961 better fix - provide a context for the main thread. The context
must be reset by the caller to clear out temp allocations etc.
2005-08-23 04:12:57 +00:00
Howard Chu
468112e2ba ITS#3961 provide ldap_pvt_thread_pool_fake_context_init/destroy, don't
use arbitrary context pointers.
2005-08-23 03:25:21 +00:00
Howard Chu
3f20324ed0 Add ldap_pvt_thread_pool_purgekey to free all instances of key across
all threads.
2005-04-22 22:27:29 +00:00
Howard Chu
5608206da2 Fix LDAP_PVT_THREAD_STACK_SIZE, automatically scale up on 64 bit machines 2005-04-15 06:18:18 +00:00
Howard Chu
1b777e0ab3 Added ldap_pvt_thread_pool_pause/resume 2005-03-07 21:02:31 +00:00
Kurt Zeilenga
dc0eacd40b Happy New Year! 2005-01-01 20:49:32 +00:00
Kurt Zeilenga
3c598e89fb Happy new year 2004-01-01 19:15:16 +00:00
Kurt Zeilenga
159de0f135 Updated notices and acknowledgements 2003-11-26 07:16:36 +00:00
Howard Chu
a6a6946a67 New ldap_pvt_thread_pool_context() 2003-04-12 04:01:40 +00:00
Luke Howard
9490776d7b Added ldap_pvt_thread_self() and ldap_pvt_thread_pool_context() API. 2003-01-24 06:49:13 +00:00
Kurt Zeilenga
6939c53170 Happy new year 2003-01-03 20:20:47 +00:00
Howard Chu
9ee8efb025 Bumped stack size up from 2M to 4M, 2M is too small on Solaris 2002-12-11 04:35:05 +00:00
Kurt Zeilenga
73b4170a6c Rework libldap to not attempt to set LDAP_API_FEATURE_X_OPENLDAP_THREAD_SAFE 2002-12-04 04:51:55 +00:00
Howard Chu
c72ee9ae1b Decrease default thread stack size from 16MB to 2MB 2002-09-10 03:34:49 +00:00
Howard Chu
8c30114d84 Added thread-pool getkey/setkey functions 2002-08-24 05:39:43 +00:00
Kurt Zeilenga
c38027902a Update copyright notices 2002-01-04 20:40:29 +00:00
Kurt Zeilenga
25b5aaf262 Delete ldap_build_filter(), it's broke.
Clean up headers.
2001-12-24 03:49:54 +00:00
Kurt Zeilenga
7b0da28939 Low stack to 16 MB... this really needs to be tunable 2001-09-26 02:42:47 +00:00
Kurt Zeilenga
5f4d8a71e6 Use a 64MB stack (instead of a 64K on some systems) by default.
This should be tunable...
2001-09-26 02:35:41 +00:00
Kurt Zeilenga
be9a50af25 Update copyright (including with or without modification clarification) 2001-05-29 03:29:53 +00:00
Mark Valence
d4d03e36e5 Added "threads" config to slapd.conf. 2000-07-04 19:24:13 +00:00
Kurt Zeilenga
9ef1a740c2 Round one of LDAP_F() macro changes. In this round we rename
macros into our namespace and limit use to headers.  A subsequent
round will add macros to separately handle forward declarations
of variables from declaration of function prototypes.  The last
round will add additional macros for declaring actual variables and
functions.
2000-06-18 19:48:07 +00:00
Kurt Zeilenga
ec426532b2 Reworked thread code to better support thread-library specific
r/w locks and thread pools.  Hide internal structures (using
pthread'ish technics).  Place common code in threads.c.  Move
no-thread code to thr_stub.c.  Move thread pool code to tpool.c.
Removed setconcurrency call from initializer, added 'concurrency'
directive to slapd.  Tested code under pthreads, pth, and no-threads.
2000-06-13 02:42:13 +00:00
Mark Valence
33f4955c07 Add thread pool routines. 2000-06-07 19:21:45 +00:00
Kurt Zeilenga
f192014c1a Use pthread rwlocks, if available 2000-06-07 00:28:35 +00:00
Mark Valence
72bf2552eb In preparation for thread pools 2000-06-06 19:59:34 +00:00
Kurt Zeilenga
9c00cb1b51 before including <pth.h>:
#define PTH_SYSCALL_SOFT 1
2000-05-19 20:47:32 +00:00
Kurt Zeilenga
0bb431d3b3 Y2k copyright update 2000-05-13 02:25:54 +00:00
Howard Chu
eaaea51b53 Fixes for NT dynamic linking. 1999-11-27 23:40:08 +00:00
Kurt Zeilenga
5b5db4def6 Additional mods to fix NT single threaded support. 1999-11-01 22:00:18 +00:00
Kurt Zeilenga
b7af076fee Use centralized output directories.
Update single debug/release not to use service manager nor event manager.
Likely breaks MINGW32 port.
1999-11-01 21:25:22 +00:00
Howard Chu
17e1877a12 Fix broken MSVC builds. The previous round of Mingw32 patches changed some
ifdefs to depend on _WINNT, which is bogus. Added _WIN32 back on these ifs,
and fixed some other include problems.
1999-10-31 02:26:41 +00:00
Howard Chu
0991e22550 Fixed the LDAP_F macro.
See README 1.27 log
1999-10-28 07:28:53 +00:00
Kurt Zeilenga
bd36de108f Add OpenLDAP RCS Id 1999-08-31 01:17:01 +00:00
Kurt Zeilenga
1b0aa8cf23 Support for native GNU Pth Threads (--with-threads=pth)
Tests behave as expected excepting slapd sometimes does not
shutdown properly.
1999-08-22 03:04:33 +00:00
Kurt Zeilenga
549dd29607 Remove HAVE_THREADS define. NO_THREADS is used instead. 1999-05-27 06:22:04 +00:00
Kurt Zeilenga
dc07e765f2 Vienna Bulk Commit
This commit includes many changes.  All changes compile under NT but
have not been tested under UNIX.

A Summary of changes (likely incomplete):

NT changes:
	Removed lint.
	Clean up configuration support for "Debug", "Release", "SDebug",
		and "SRelease" configurations.
	Share output directories for clients, libraries,
		and slapd.  (maybe they should be combined further
		and moved to build/{,S}{Debug,Release}).
	Enable threading when _MT is defined.
	Enable debuging when _DEBUG is defined.
	Disable setting of NDEBUG under Release/SRelease.  Asserts
		are disabled in <ac/assert.h> when LDAP_DEBUG is not
		defined.
	Added 'build/main.dsp' Master project.
	Removed non-slapd projects from slapd.dsp (see main.dsp).
	Removed replaced many uses of _WIN32 macro with feature based
		macros.

ldap_cdefs.h changes
	#define LDAP_CONST const
		(see below)
	#define LDAP_F(type) LDAP_F_PRE type LDAP_F_POST
		To allow specifiers to be added before and after
		the type declaration.  (For DLL handling)

LBER/LDAP changes
	Namespace changes:
		s/lber_/ber_/ for here and there.
		s/NAME_ERROR/LDAP_NAME_ERROR/g
	Deleted NULLMSG and other NULL* macros for namespace reasons.
	"const" libraries.  Installed headers (ie: lber.h, ldap.h)
		use LDAP_CONST macro.  Normally set to 'const' when
		__STDC__.  Can be set externally to enable/disable
		'constification' of external interface.  Internal
		interface always uses 'const'.  Did not fix warnings
		in -lldif (in lieu of new LDIF parser).

	Added _ext API implementations (excepting search and bind).
		Need to implement ldap_int_get_controls() for reponses
		with controls.

	Added numberous assert() checks.

LDAP_R
	_MT defines HAVE_NT_THREADS
	Added numberous assert() checks.
	Changed ldap_pthread_t back to unsigned long.  Used cast
	to HANDLE in _join().

LDBM
	Replaced _WIN32 with HAVE_SYSLOG

ud
	Added version string if MKVERSION is not defined.  (MKVERSION
		needs to be set under UNIX).

slapd
	Made connection sockbuf field a pointer to a sockbuf.  This
		removed slap.h dependency on lber-int.h.  lber-int.h now only
		included by those files needing to mess with the sockbuf.
	Used ber_* functions/macros to access sockbuf internals whenever
		possible.
	Added version string if MKVERSION is not defined.  (MKVERSION
		needs to be set under UNIX).
	Removed FD_SET unsigned lint

slapd/tools
	Used EXEEXT to added ".exe" to routines.  Need to define EXEEXT
		under UNIX.

ldappasswd
	Added ldappasswd.dsp.  Ported to NT.  Used getpid() to seed rand().

nt_debug
	Minor cleanup.  Added "portable.h" include and used <ac/*.h> where
	appropriate.  Added const to char* format argument.
1999-05-19 01:12:33 +00:00
Kurt Zeilenga
504fac55c8 Clean up valid flag: _VALUE -> _VALID. 1999-04-27 05:18:21 +00:00
Gary Williams
5ccc8b5ab9 fix typo on destroy 1999-04-14 15:02:38 +00:00
Kurt Zeilenga
73b846c011 Add ldap_pvt_thread_destory() to un-ldap_pvt_thread_initialize().
Move all SunOS routines (ie: _sleep() and its helpers) to thr_lwp.c
so that it's internals can be 'static'.  Add 'static' to thr_lwp.c.
Add comment to LWP:  NEEDS WORK, may not compile!  Need some
SunOS user to sort out the details.  Volunteers?
1999-04-06 21:57:16 +00:00
Kurt Zeilenga
366701bdf7 Fix dbcache/entry lock deadlock. If dbcache lock is held, it's
okay to read and write LDBM specific fields (state, refcnt,
LRU.  The id field, though is read-only once set.
cache_find_entry_dn2id(), hence, does not require any entry locks.
cache_find_entry_id() must do a entry_rdwr_trylock() and back
off if busy.
Add new rdwr lock code with trylock() functionality.
Implement entry_rdwr_trylock().
1999-02-04 18:00:50 +00:00
Kurt Zeilenga
d671c49b94 Fix set concurrency typos. 1999-02-03 18:29:27 +00:00
Kurt Zeilenga
30d106079d Add cond/rdwr destroy routines. 1999-01-29 05:52:40 +00:00
Kurt Zeilenga
72ba4cfb71 Use -lldap_r instead of -lldap -lthread.
Likely broke things for non-posix threadings....

Update -lldap_r implementation to:
	remove attribute support
	hide thread detachment
	provide concurrency accessors
	provide initialization function
	fix gethostby{addr,name}_r codes (not coverred by HAVE_REENTRANT_FUNCTIONS)
Update servers/libraries to use ldap_pvt_thread_ calls.
Cleanup server codes (no #ifdef HAVE_PTHREAD_THIS or _THATs)!
Removed -llthread
1999-01-28 04:34:55 +00:00
Kurt Zeilenga
c32dcd6365 Fixup begin/end declaration tags
Assume portable.h has been included
Include ldap_cdefs.h at the top.
1999-01-27 21:11:55 +00:00
Kurt Zeilenga
2a7794de09 Fix minor typo in lthread.h (which was copied into ldap_pvt_thread.h). 1999-01-22 03:48:31 +00:00