harmony-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Thomas Hawtin <tackl...@tackline.plus.com>
Subject Re: [-SPAM-] RE: [classlib][swing] an odd code in swing
Date Tue, 05 Dec 2006 16:54:24 GMT
Ivanov, Alexey A wrote:
> I think synchronized block can be safely removed.
> Any way Swing is not thread-safe, and these methods are not explicitly
> marked as thread-safe.

This is a static mutable variables [bad]. In an environment where there 
are multiple 'AppContexts', such as Applets, it may be accessed by 
multiple threads.

>> From: Mikhail Loenko [mailto:mloenko@gmail.com]
>>
>> javax.swing.Timer
>>
>> this is an attomic operation, why synchronized?

That is not a valid argument.

One issue is that the change would not necessarily visible to other 
threads if not synchronized/volatile. Secondly, if there are other 
non-atomic operation using synchronized, then these may fail. However, 
in this case volatile looks fine, and no-one would really notice if even 
that was not present.

>>    public static void setLogTimers(final boolean isLogTimers) {
>>        synchronized (Timer.class) {
>>            Timer.isLogTimers = isLogTimers;
>>        }
>>    }

Tom Hawtin

Mime
View raw message