Commit Graph

363 Commits

Author SHA1 Message Date
Hallvard Furuseth
19b3812643 Introduce ldap_debug_thread_wrapper() to notice threads that exit by returning 2006-04-30 01:15:57 +00:00
Howard Chu
5b8a74590b Fix tpool_shutdown, don't remove pool from list since pool_destroy
already does it.
2006-04-29 22:31:58 +00:00
Howard Chu
7026d5219f Fix adjust_count, missing break 2006-04-29 22:31:33 +00:00
Howard Chu
e1ec64aaee rmutex_lock etc.: caller supplies thread id 2006-04-28 21:39:38 +00:00
Howard Chu
0a7808fbad Added recursive mutex implementation 2006-04-28 20:12:45 +00:00
Hallvard Furuseth
b70d6dd8e6 LDAP_RDWR_DEBUG update:
- Avoid buffer overrun when too many readers.
- When remoinv reader ID, move one ID instead of all later IDs in array.
- assert(correct lock owner) before unlocking a write lock.
2006-04-05 20:08:34 +00:00
Hallvard Furuseth
ca4a4456e8 LDAP_THREAD_DEBUG revamping, cleanup, bug fixes.
Expand usage struct with magic numbers and state info.
Add options "noreinit", "nosync", "nomem", "threadID".  Remove "dupinit".
Detect address changes.  Turn off thread ID tracking by default.
2006-04-05 19:52:07 +00:00
Hallvard Furuseth
7057f8756c thr_yield() returns void, so do not use its "return value" (ITS#4469) 2006-04-03 17:10:38 +00:00
Hallvard Furuseth
7a113f0759 Restore $LDAP_THREAD_DEBUG=off functionality (was lost in last patch). 2006-04-03 12:49:30 +00:00
Hallvard Furuseth
da0c0360e4 Warnings: Unused vars. funcptr=0, not =NULL. if(b=...) -> if((b=...) != NULL). 2006-04-02 19:54:24 +00:00
Pierangelo Masarati
cad751250e allow mutex ownership detection (thanks to Hallvard) 2006-04-01 19:00:37 +00:00
Hallvard Furuseth
9313508035 Expand and clarify thr_debug documentation. 2006-04-01 18:31:38 +00:00
Howard Chu
de36ebd08c cleanup NULL deref 2006-03-31 21:20:36 +00:00
Kurt Zeilenga
825ce79611 Initial and rough client-side implementation of the revised LDAP
Transactions specification.  A work in progress!  Comments welcomed.
2006-03-06 21:20:36 +00:00
Howard Chu
9870eba3ee ITS#4368 unlock pool ltp_mutex before destroying it 2006-01-24 23:31:56 +00:00
Howard Chu
84315e96f8 ITS#4349 don't wait on condition if there are no threads in the pool. 2006-01-18 01:55:24 +00:00
Howard Chu
7f5ea4c098 Get rid of trivial yield, for completeness' sake. 2006-01-15 14:34:44 +00:00
Howard Chu
78a9d66e53 ITS#3950 delete gratuitous yield. (could use pthread_cond_timedwait
if we ever wanted to time out idle threads.)
2006-01-15 14:21:16 +00:00
Pierangelo Masarati
c5c5ba0b32 s/o/lo/ 2006-01-09 21:02:52 +00:00
Kurt Zeilenga
eccd913a07 Update variables holding protocol values to ber_*_t's
Remove old grouping/txn code (pending redesign)
2006-01-09 01:25:53 +00:00
Pierangelo Masarati
de79a7bfec rework API functions to create/parse controls; add client API functions to handle RFC2696 paged results (ITS#4314; patch from Hans Leidekker with changes) 2006-01-08 22:03:30 +00:00
Pierangelo Masarati
339b9c371e rfc2589 support (ITS#4293) 2006-01-06 17:46:52 +00:00
Howard Chu
d1693d4a07 ITS#3950 tweak prev commit, s/REPLACE_SCHED_YIELD/REPLACE_BROKEN_YIELD/ 2006-01-06 06:07:36 +00:00
Kurt Zeilenga
f5fd375d38 i before e and other cleanup 2006-01-06 05:50:51 +00:00
Kurt Zeilenga
21d15546d3 Make use of nanosleep/select as a sched_yeild(2) replacement
conditional on REPLACE_SCHED_YEILD.   Configure support
needed.
2006-01-06 05:22:35 +00:00
Howard Chu
69179a5c44 ITS#3950 use select instead of yield when select does the right thing. 2006-01-06 01:02:00 +00:00
Kurt Zeilenga
acbb5cf689 Happy new year! 2006-01-03 23:11:52 +00:00
Howard Chu
f80e9d11fa Fix prev commit, spawns unnecessary threads. 2005-10-28 10:31:21 +00:00
Howard Chu
71514ffb92 Fix pool_submit, create threads as long as we're under the max count. 2005-10-27 21:55:18 +00:00
Pierangelo Masarati
d277c5b3d6 silence SLAP_SEM_LOAD_CONTROL related warnings... 2005-10-16 08:58:06 +00:00
Kurt Zeilenga
533394d641 disable SLAP_SEM_LOAD_CONTROL by default, needs additional review/work
Misc. other cleanup
2005-10-16 00:17:58 +00:00
Kurt Zeilenga
6db7e605ee Align Operation buffers using LBER_ALIGNED_BUFFER 2005-10-12 23:17:28 +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
6be50f1b0f ITS#4006 add stub for ldap_pvt_thread_pool_context_reset() 2005-09-06 22:11:26 +00:00
Pierangelo Masarati
6aa5b4f775 address ITS#3925; please test 2005-09-01 01:59:36 +00:00
Pierangelo Masarati
fe4b006e17 wait also if PAUSING; silence warnings and improve readability with gdb 2005-09-01 01:54:00 +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
6754d025f2 ITS#3847 silence warnings 2005-07-11 10:39:32 +00:00
Hallvard Furuseth
a20b19cc9e ISO C chokes on comma at end of enum list 2005-07-06 08:13:50 +00:00
Howard Chu
5f46aa4d3b ITS#3760 add missing NO_THREADS stubs 2005-06-03 22:08:31 +00:00
Kurt Zeilenga
be097fc8cd Add ldap_turn(3) and ldap_turn_s(3). 2005-05-04 20:24:48 +00:00
Howard Chu
2d06c4fe2d Freshly inserted tasks should be at head of queue and run immediately 2005-04-23 16:56:37 +00:00
Howard Chu
b978e77932 Add task names to runqueue entries 2005-04-23 00:27:57 +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
2dec29f265 Change ldap_pvt_runqueue_insert to return new task pointer 2005-04-22 14:37:59 +00:00
Howard Chu
dd646eb734 Added ldap_pvt_runqueue_find() 2005-04-19 14:40:30 +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
e0a9ea2f50 Move MSVC port to the Attic 2004-09-04 04:37:41 +00:00
Howard Chu
0305199518 Additional debug tracking... 2004-07-03 16:25:30 +00:00
Jong Hyuk Choi
a1308f8dfa syncrepl retry code fix for correct timing 2004-06-21 07:03:49 +00:00
Jong Hyuk Choi
763f8c76ee syncrepl retry-on-error code 2004-06-18 05:04:03 +00:00
Howard Chu
cee3acea09 Fix prev commit 2004-03-17 09:59:03 +00:00
Howard Chu
650837742a Restore NT4 compatibility, avoid W2K-only API 2004-03-17 05:06:04 +00:00
Pierangelo Masarati
c9fae6c942 fix file name 2004-03-16 18:02:38 +00:00
Kurt Zeilenga
647df2b9cb Start of client-side LDAP tranactions (non-working)
and lots of cleanup (hence the commit)
(ldapmodify will need much more work for transactions)
2004-03-14 23:32:00 +00:00
Howard Chu
3810fa18d8 Added PasswordPolicy control 2004-03-12 21:22:32 +00:00
Howard Chu
f3f78e8a1f ITS#2997 change MAXTHREADS to LDAP_MAXTHR 2004-03-04 15:35:29 +00:00
Howard Chu
a6b1dfd1c8 Fix ldap_pvt_thread_self, GetCurrentThread() returns a constant, not a
unique value.
2004-01-15 09:59:11 +00:00
Kurt Zeilenga
3c598e89fb Happy new year 2004-01-01 19:15:16 +00:00
Kurt Zeilenga
f9ba11f543 Add acknowledgements 2003-11-27 00:33:55 +00:00
Jong Hyuk Choi
5d411fd963 Another patch for the multi syncrepl thread support 2003-11-26 20:40:16 +00:00
Kurt Zeilenga
159de0f135 Updated notices and acknowledgements 2003-11-26 07:16:36 +00:00
Kurt Zeilenga
e3a4c4ec9c Notice/Acknowledge updates 2003-11-26 02:58:56 +00:00
Howard Chu
fb493f5f3a ITS#2820 fix pthread_create for Draft 4 2003-11-13 02:41:01 +00:00
Jong Hyuk Choi
0a7a97d294 Copyright heading 2003-11-12 00:25:48 +00:00
Howard Chu
45c42630db Add "defer" arg to ldap_pvt_runqueue_resched to suspend scheduling of
a task in the queue without removing it.
2003-10-25 21:13:08 +00:00
Jong Hyuk Choi
85ff0377d2 runqueue locking fix (ITS#2746) 2003-10-12 09:13:04 +00:00
Howard Chu
cc6cfd30cc Include <ac/socket.h> so Windows can pull in struct timeval def 2003-09-27 06:48:15 +00:00
Kurt Zeilenga
12304f64e5 Merge partial and intermediate responses 2003-05-31 05:01:49 +00:00
Kurt Zeilenga
e8144158f3 Add/Update various copyright notices 2003-05-25 03:31:21 +00:00
Jong Hyuk Choi
4192c4aaaa select loop changes for persistent threads 2003-05-20 23:52:11 +00:00
Jong Hyuk Choi
8340afd736 remove ch_malloc/ch_free 2003-05-14 21:30:25 +00:00
Jong Hyuk Choi
35d1bd68b9 runqueue restructuring 2003-05-07 23:52:08 +00:00
Jong Hyuk Choi
580ae073e1 runqueue update 2003-05-07 22:29:26 +00:00
Jong Hyuk Choi
45776bff04 a runqueue for periodic thread execution (for syncrepl) 2003-05-07 02:06:01 +00:00
Howard Chu
a54549f1d5 Use pthread_equal to compare thread IDs 2003-05-02 12:23:31 +00:00
Howard Chu
b4dfd0c08c Add ldap_pvt_thread_pool_context() stub for NO_THREADS builds 2003-04-16 00:18:56 +00:00
Howard Chu
30b3d741d5 Fix prev commit - hash bytes of ldap_pvt_thread_t to find proper slot 2003-04-13 05:48:48 +00:00
Howard Chu
a6a6946a67 New ldap_pvt_thread_pool_context() 2003-04-12 04:01:40 +00:00
Kurt Zeilenga
e446a0c5cd cancel.c missing (blind update) 2003-03-30 05:38:39 +00:00
Howard Chu
4a1eb51d3e ITS#2404 keep the per-thread context in the individual threads... 2003-03-27 01:39:42 +00:00
Howard Chu
c20d1840ba Blind fix, delete obsolete files cache.c, authpasswd.c 2003-03-07 21:10:02 +00:00
Howard Chu
fabbbafde9 Don't spawn threads based on ltp_pending_count, it doesn't get decremented
right away due to ltp_mutex still being held. Just see if all open threads
are active... Use cond_broadcast to signal all waiting threads. Make sure
to remove correct ctx from active list after the thread returns.
2003-02-17 12:10:41 +00:00
Howard Chu
bbdc869d7a Set stack size for created threads 2003-02-14 23:52:38 +00:00
Kurt Zeilenga
aa291a3492 We should be calling libtool --finish when install libraries 2003-02-09 23:10:29 +00:00
Kurt Zeilenga
4b3396f5fd unifdef -DLDAP_NOCACHE 2003-02-09 07:42:18 +00:00
Kurt Zeilenga
c34e59be35 Consistently add cancel.c to makefiles 2003-02-09 01:54:41 +00:00
Luke Howard
4a6c16b669 Don't free active thread list 2003-01-24 08:20:55 +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
Howard Chu
38e7047130 Set thread stack size, default (1MB) is always too small for back-bdb. 2003-01-13 14:28:50 +00:00
Kurt Zeilenga
6939c53170 Happy new year 2003-01-03 20:20:47 +00:00
Kurt Zeilenga
5fe7d38e1c Add whoami.c and passwd.c and other minor tweaks to control cleanups 2002-11-28 02:44:38 +00:00
Howard Chu
82eed24c3d Prefer thr_yield over sched_yield for Solaris 2002-10-12 01:21:21 +00:00
Kurt Zeilenga
14ab87b54a MacOS 10.1 pthread_kill() workaround 2002-10-02 20:10:55 +00:00
Howard Chu
9a8eadb9de Fix return values, set stack size. (Default is only 64K, far too small.)
Fixes the SEGVs from stack overrun, but slapd tends to get hung in select.
2002-09-21 01:41:45 +00:00
Howard Chu
2e6a83049e POSIX threads tweaks for Draft 4 vs Draft 5 2002-09-12 23:12:18 +00:00
Howard Chu
dfa8bdec60 Fine-tuning pthreads revision dependencies 2002-09-11 07:24:21 +00:00
Howard Chu
c9b7fc6407 New POSIX threads version support. Detects Draft 4,5,6,7,10 (final).
Should eliminate individual checks for pthread_yield, sched_yield,
and pthread_detach, but they're left in for now as a redundant check.
2002-09-07 14:09:09 +00:00
Julius Enarusai
48593e1484 Fix compile error when --without-threads configure option is set. Function
headers differ from prototypes in ldap_pvt_threads.h
2002-08-26 19:26:09 +00:00
Howard Chu
8c30114d84 Added thread-pool getkey/setkey functions 2002-08-24 05:39:43 +00:00
Kurt Zeilenga
86717ac2d9 NT port fixes 2002-08-24 00:37:59 +00:00
Kurt Zeilenga
9c28c9b361 Zap LDAPv2-only stuff 2002-08-08 03:01:14 +00:00
Howard Chu
f969443fb7 Additional tweak for HAVE_PTHREADS_OS390 2002-07-27 00:12:39 +00:00
Howard Chu
cc8aa38d7d Some tweaks for OS/390 pthreads. Func signatures are different, return
val is 0/-1 with err in errno instead of in return val.
2002-07-26 03:15:25 +00:00
Kurt Zeilenga
d401bf956f ITS#1922: add references.lo 2002-07-09 00:34:41 +00:00
Howard Chu
a1e63db574 Fix ITS#1865, (ITS#1764?) cond_broadcast behavior was broken 2002-06-07 22:45:22 +00:00
Kurt Zeilenga
771a131b0d Fix unprotected list modification 2002-05-31 20:22:44 +00:00
Howard Chu
7de25993f5 Fix NT_LINK_LIBS, UNIX_LINK_LIBS 2002-05-17 23:41:26 +00:00
Pierangelo Masarati
e8c5f59d84 ldap_int_thread_pool_wrapper was called with wrong prototype (ITS#1673)
================
Written by Hallvard B. Furuseth and placed into the public domain.
This software is not subject to any license of the University of Oslo.
                        ================

ldap_int_thread_pool_wrapper() was defined with an parameter
struct ldap_int_thread_pool_s* but called with a void* argument.
Since these may have different representations, it can crash.


Hallvard B. Furuseth <h.b.furuseth@usit.uio.no>, March 2002.
2002-03-23 17:24:38 +00:00
Kurt Zeilenga
ce07fb958e Update libtool usage
s/-L.../libraries -lldap/.../libraries/libldap/libldap.la/
2002-02-10 22:42:51 +00:00
Kurt Zeilenga
962e351271 Minor cleanup 2002-01-07 21:22:38 +00:00
Kurt Zeilenga
0e2af54a3f Update copyright statements 2002-01-04 21:17:25 +00:00
Howard Chu
da00e5dac1 Use LDAP_FREE instead of free 2002-01-03 23:30:45 +00:00
Howard Chu
029306a5be Use ldap_queue.h instead of <ac/queue.h> 2002-01-03 00:12:46 +00:00
Howard Chu
4bd58083ad Make .links depend on Makefile so it gets automatically reinvoked
whenever the Makefile is updated
2002-01-02 21:58:22 +00:00
Kurt Zeilenga
3ecc6b8b2c Add filter.c 2002-01-02 17:08:42 +00:00
Kurt Zeilenga
763c0de59b Rework filter code
Misc cleanup / lint removal
2002-01-02 17:06:56 +00:00
Howard Chu
e823c74811 Fix typo 2001-12-31 12:37:45 +00:00
Howard Chu
9405761404 Moved free list to avoid additional mutex 2001-12-31 06:46:03 +00:00
Howard Chu
6e66d14311 Fix previous commit 2001-12-31 04:01:26 +00:00
Howard Chu
3e90c7dd42 Use queue-compat.h for queue management. Cache ctx structures on a free
list instead of always freeing them.
2001-12-31 03:05:56 +00:00
Kurt Zeilenga
04ea760a91 Delete USE_LDAP_DN_PARSING 2001-12-24 06:02:59 +00:00
Kurt Zeilenga
d0abe6f59f Misc DN cleanup, no functional changes 2001-12-24 06:00:02 +00:00
Kurt Zeilenga
0845c0bf6f zap tmplout 2001-12-21 04:38:36 +00:00
Kurt Zeilenga
80649933bd Zap tmplout 2001-12-21 03:28:48 +00:00
Kurt Zeilenga
ae6b840350 Remove ttest 2001-12-20 07:29:33 +00:00
Kurt Zeilenga
c9afb5e8a3 misc cleanup 2001-12-20 01:43:03 +00:00
Kurt Zeilenga
1f8cba688d dsparse still needed by filter templates (which are used by ud(1)). 2001-12-19 21:53:30 +00:00
Kurt Zeilenga
b3b17ca4e7 Remove srchpref and disptmpl stuff. 2001-12-19 21:46:34 +00:00
Kurt Zeilenga
9ce6d07b61 More cleanup 2001-12-19 21:37:41 +00:00
Kurt Zeilenga
de857a1152 Misc cleanup 2001-12-19 21:23:49 +00:00
Kurt Zeilenga
ca975216b8 Regenerate configure and fix AC header inclusion 2001-12-18 02:25:21 +00:00
Kurt Zeilenga
abd9be4def Remove lint and misc MSVC updates 2001-12-09 02:34:45 +00:00
Howard Chu
0552b1c53f NT updates from jon@symas.com. 2001-12-07 04:03:25 +00:00
Kurt Zeilenga
8b4bae1fe3 Friendly name removal 2001-12-03 20:04:31 +00:00
Mark Adamson
e0ff8d6782 fix various memory leaks 2001-11-05 23:14:42 +00:00
Kurt Zeilenga
da22af709b Move stacksize setting outside of detach #ifdef 2001-09-27 18:54:17 +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
11b6d1f284 Misc updates for NT4 2001-06-15 04:16:55 +00:00
Kurt Zeilenga
86acd7eb20 unifdef -ULDAP_UFN 2001-06-11 21:08:49 +00:00
Kurt Zeilenga
44bef574c8 Updated pthread test and usage (avoid pthread_detach if possible)
don't use tmpnam()
2001-06-09 01:05:35 +00:00
Kurt Zeilenga
5a26f9d617 Fix ; typo 2001-05-16 19:17:51 +00:00
Kurt Zeilenga
325a12e25d NT thread fix 2001-05-06 18:58:45 +00:00
Kurt Zeilenga
379d0962ea Add cast to avoid mismatch 2000-10-06 21:16:26 +00:00
Kurt Zeilenga
003a293e2b Don't specify LDFLAGS when using LTLINK to avoid duplicate
specfication of flags.
2000-10-01 08:10:37 +00:00
Ben Collins
4d0a95db04 wrap unused function, ldap_int_thread_onlist() in #if 0 2000-09-15 03:07:43 +00:00
Ben Collins
18c5605524 fix compiler warnings by including ac/unistd.h 2000-09-15 03:06:51 +00:00