[armedbear-devel] [PATCH] Support for SYNCHRONIZED blocks (and company)
Erik Huelsmann
ehuels at gmail.com
Thu Jul 9 08:53:42 UTC 2009
On Thu, Jul 9, 2009 at 7:40 AM, Mark Evenson<evenson at panix.com> wrote:
> Erik Huelsmann wrote:
>>
>> The patch...
>>
>> On Wed, Jul 8, 2009 at 11:49 PM, Erik Huelsmann<ehuels at gmail.com> wrote:
>>>
>>> Based on discussion earlier this week, I'd like the following patch to
>>> get committed to our trunk.
>>>
>>> It introduces a new block statement
>>>
>>> SYNCHRONIZED-ON <object>
>>> body
>
> And, just to be clear, this patch meets Anton Vodonosov's caution that
> "synchronized" has semantics associated with memory synchronization because
> it implements SYNCHRONIZED-ON directly in the bytecode compiler just as Java
> (the language) does, right? So the whole "happens-before" semantics
> mentioned in the JLS should be met?
Exactly: I built the compiler conforming to the JVM spec section on
"compiling for the JVM" which discusses the Java 'synchronized'
statement compilation. So, yes.
The only question I asked myself when I woke up this morning is:
Should the symbols in this patch not be added to the JAVA package, as
they are designed to "provide access to the Java functionality"?
I still think the Gates implementation should be in the threads package, though.
I really liked Alessio's suggestion to use javaInstance() to lock on.
That increases interoperability. Alessio, your CON with respect to
fixnums is not justified, IMO, because in general, you can't expect
numbers to remain the same object at any time, according to the spec.
(The same is true, btw, if you synchronize on the Fixnum itself: the
compiler may box the fixnum in order to create a synchronized-on
object)
Bye,
Erik.
More information about the armedbear-devel
mailing list