Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 13 Nov 2001 21:11:15 -0600 (CST)
From:      Loren James Rittle <rittle@latour.rsch.comm.mot.com>
To:        current@freebsd.org
Subject:   Re: Report on FreeBSD 4.4 pthread implementation verses boehm-gc
Message-ID:  <200111140311.fAE3BFX14844@latour.rsch.comm.mot.com>
In-Reply-To: <Pine.SUN.3.91.1011110095953.20896A-100000@pcnet1.pcnet.com> (message from Daniel Eischen on Sat, 10 Nov 2001 10:09:14 -0500 (EST))
References:   <Pine.SUN.3.91.1011110095953.20896A-100000@pcnet1.pcnet.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In article <Pine.SUN.3.91.1011110095953.20896A-100000@pcnet1.pcnet.com>,
Daniel Eischen <eischen@pcnet1.pcnet.com> 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 majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200111140311.fAE3BFX14844>