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:[EMAIL PROTECTED]

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

Reply via email to