Skip site navigation (1)Skip section navigation (2)
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>