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

Re: pthread rdwr locks



Howard Chu wrote:
I just noticed that we're explicitly disabling support for native rdwr locks in ldap_int_thread.h, and it's been that way since 2000. Any reason not to use the native locks instead of our emulation routines?

The reason I ask is that on Linux I'm running into situations where pthread_cond_signal appears to not wake up the waiting threads. Since our rdwr locks are implemented with condition variables, they occasionally hang (with zero active and waiting readers and writers). I first started running into this consistently while developing the threaded indexer code (and wrote around it there) but it's also happening very infrequently on long running slapd tasks. I guess I need to write a small test program to demonstrate the bug and send it to the glibc or kernel folks. I was hoping that using the native rdwr locks may bypass the problem for now.

--
 -- Howard Chu
 Chief Architect, Symas Corp.  http://www.symas.com
 Director, Highland Sun        http://highlandsun.com/hyc
 OpenLDAP Core Team            http://www.openldap.org/project/