Re: Dec 7 commit & Thread safe fields usage

Date view Thread view Subject view Author view

From: Godmar Back (gback@cs.utah.edu)
Date: Tue Dec 08 1998 - 11:17:35 EST


 Hi Edouard,

>
> As I have not receives promis Legal Papers, I'm not in kaffe-code mailing
> list. As I think it is restricted, I send this mail to all of you.

Is it restricted?
Daniel, if so, would you please set it up so that Edouard can send mail?

>
> Comments for December 7, 1998 CVS commit:
> -----------------------------------------
>
> java.awt.Default
> already have RgbRequests reintroduced by java.awt.RequestRgb.
>
> clib/awt/X/clr.c
> "unsigned int" changes back to "unsigned".
>
> clib/awt/X/evt.c clib/awt/X/fnt.c clib/awt/X/gra.c clib/awt/X/img.c
> clib/awt/X/toolkit.h
> "register int" changes back to "register".
>
> clib/awt/X/clr.c clib/awt/X/evt.c clib/awt/X/img.c clib/awt/X/imgpng.c
> clib/awt/X/toolkit.h
> use __inline__ in place of inline (defined by configure).
>

Some of these cause -Wall warnings, don't they?
I think we need to make a cleanup pass over the whole source, and
awt in particular to get rid of these. I also introduced one of two
myself.

>
> java.util.Vector
> clone() no longer use super.clone() and now extends AbstractList.
> Is AbstractList clonable ?
>

clone() must call super.clone() or else all hell breaks loose.

> java.awt.FlushThread (java/awt/Toolkit.java)
> stop field should be volatile.
>
> java.awt.Window
> nativeData should be volatile.
> removeNotify(), line 227, while (nativeData == null) should be
> while (nativeData != null)
> addNotify(), removeNotify(): use Toolkit.isDispatchEclusive &&
> (Thread.currentThread() != Toolkit.eventThread), should not use
> Toolkit.isWrongThread() ?
>
> kaffe.applet.AudioPlayer
> stop field should be volatile.
>
> kaffe.lang.UNIXProcess
> isalive field should be volatile.
>
> kaffe.util.Timer
> stop field should be volatile.
> should nClient and clients fields be volatile ?
>

Somebody clue me in: what does "volatile" mean in Java?
Does it have the same meaning as in C? That is, a variable whose value
may change between subsequent reads without the current thread writing to
it? Or a variable to which writes must be committed even thought the
current thread doesn't read from it?
If so, where is volatile encoded in the class file and does Kaffe's JIT
compiler know how to handle it?

        - Godmar


Date view Thread view Subject view Author view

This archive was generated by hypermail 2b29 : Sat Sep 23 2000 - 19:57:08 EDT