[Date Prev][Date Next] [Chronological] [Thread] [Top]

ldap_pvt_thread_cond_broadcast not functioning (ITS#1875)



Full_Name: Todd Stout
Version: 2.18 - Current
OS: Win NT/2000
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (204.62.9.73)


The ldap_pvt_thread_cond_broadcast() implementation seems broken for win32
systems.  Specifically, only a single thread is awakened when there are
multiple
threads waiting on the condition variable.  This does not seem to present a 
problem for slapd since it does not rely on broadcast (it only uses signal).
This presents a problem for slurpd however, since there is a thread for each
replication entry in slapd.conf.  Under win32, when there are multiple
replicants,
only one recieves an update since not all replicant threads in slurpd become
active
when broadcast is executed by the fm thread.  If have been able to work around
the
problem by changing slurpd to include a condition variable per replicant thread

and faking the broadcast by signaling each condition variable.
However, it would be cleaner to correct the cond_broadcast implementation to 
avoid win32 specific code in slurpd.