On Sat, 7 Apr 2012 12:38:30 GMT, [email protected] wrote: > Fixed in master, e6a25b2db6d7f4dc5d3370e06e3a3e03c5a6635d. > > Or at least, fixed some broken code in master. But I wonder > why it usually worked before. Testing with sleep(1) before > reading tid = *(int*)ptr in slapd_daemon_task() ought > to fail (lets caller increment i first), but doesn't.
Aha, slapd_daemon() sets i=0 after starting the threads. Reproduced the crash now by sleeping before setting i=0. This ITS probably explains a bunch of other problems, in that all 'slapd_daemon_task's usually have been running with tid=0, even if there were more listeners. assert(tid==0) in slapd_daemon_task does not crash when starting slapd with multiple URLs, unless I sleep after the loop which starts the threads. -- Hallvard
