[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #35263] libobjc2 can enter a deadlock during dtable initialization

From: Fred Kiefer
Subject: [bug #35263] libobjc2 can enter a deadlock during dtable initialization
Date: Sun, 08 Jan 2012 19:25:16 +0000
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:9.0.1) Gecko/20100101 Firefox/9.0.1

Follow-up Comment #1, bug #35263 (project gnustep):

I just want to pass on the comment by David Chisnall, he still doesn't seem to
use Savannah. I am myself not totally convinced that David is right here. Even
though Apple doesn't support that behaviour doesn't mean libobjc2 should not
have it. Although it means, nobody should rely on it :-(

Here David's comment:

This can be closed as 'works as expected'.  The attached test program
deadlocks in exactly the same way on OS X as it does with libobjc2 - the bug
is in the test, not in the runtime.

The contract for +initialize is that it is guaranteed to complete before any
other message (by any thread) that does not originate within the +initialise
method itself will be received by the class receiving the +initialize method. 
This means that the code in the test case can not possibly pass on any
conforming Objective-C implementation.

It does 'work' with the GCC runtime, because of a long-standing bug where the
GCC runtime doesn't correctly do any serialisation of +initialise so this test
case contains a race condition instead of a deadlock.


Reply to this item at:


  Nachricht geschickt von/durch Savannah

reply via email to

[Prev in Thread] Current Thread [Next in Thread]