Date: Wed, 15 Jun 2005 07:27:22 -0400 From: "Mikhail T." <mi@aldan.algebra.com> To: David Xu <davidxu@freebsd.org> Cc: freebsd-threads@freebsd.org, grhoten@jtcsv.com Subject: Re: IntlTest hangs on FreeBSD (TestThreadedIntl) (PR#1141) Message-ID: <200506150727.23486@Misha> In-Reply-To: <42AFF243.9080908@freebsd.org> References: <42AFF243.9080908@freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
= Have you tried it with libthr on -CURRENT ? No, not in a while. The bug is not 100% reproducible either. You can try it for yourself: cd /usr/ports/devel/icu make make intltest Yours, -mi = = My initial guess is that it seems to be an OS thread scheduler bug. = = The main process spins in a loop without sleeping and frequently = = locks the global mutex while waiting for the other threads to = = finish. None of the other threads get enough time because they are = = all waiting for the global mutex lock from the main process thread = = when its their turn. The main process thread is hoging the global = = mutex while it's in its loop. It's not a deadlock, it's just a type = = of thread scheduling that doesn't happen on other operating systems. = = Whether it is a bug or a legal oddity, our threads (CC-ed) people = would love to hear about it... = = = Adding a sleep() or a yield statement in the main thread of the test = = allows the test to finish. The fix will be available in ICU 3.4. = = -mi
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506150727.23486>