ARM: enable interpreter, add locks code
David Daney
ddaney@avtrex.com
Wed Jul 11 21:59:00 GMT 2007
Daniel Jacobowitz wrote:
> On Wed, Jul 11, 2007 at 12:58:28PM -0700, David Daney wrote:
>> Andrew Haley wrote:
>>
>>> +/* Atomic compare and exchange. These sequences are not actually
>>> + atomic; there is a race if *ADDR != OLD_VAL and we are preempted
>>> + between the two swaps. However, they are very close to atomic, and
>>> + are the best that a pre-ARMv6 implementation can do without
>>> + operating system support. LinuxThreads has been using these
>>> + sequences for many years. */
>> Wow! That is terrible.
>
> Actually it works very well :-)
>
Until you get a random deadlock in a long running process.
It seems like the LinuxThreads bug for MIPS in glibc 2.2.5 that I spent
about a week trying to figure out. At least in that case upgrading to
glibc 2.3.3 fixed things nicely.
David Daney
More information about the Java-patches
mailing list