In article <[EMAIL PROTECTED]>, Daniel Eischen <[EMAIL PROTECTED]> writes:
> [ Followups to -current ] >> [...] However, this work has uncovered either a rare race condition >> in the 4.X pthread implementation (also seen on a current 5.0 >> system) or a bad assumption in the GC signal code (abstracted >> below). [...] > Try the following patch; this is to -current, you'll have to massage > it a bit for -stable (Hint: s/curthread/_thread_run/ in -stable). I have added Daniel's patch to my 4.4-STABLE tree (converting it as he suggested) and rebuilt libc_r.so.4. I can confirm (1) that the test case I posted now operates fine; (2) that the hack to ignore the spurious EINTR return from pthread_join() in boehm-gc is no longer required; and (3) that the more complex test case runs, on average, about 200-400 complete test cycles without deadlock compared to the past rate of deadlock of approximately 1 out of every 6-12 cycles. The rarer deadlock is still being investigated but it looks like a different problem than that addressed by Daniel's patch. I will post another test case or more information (to -hackers) once I have it. Great work Daniel. I (and future libjava users) thank you. Regards, Loren To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-current" in the body of the message