RE: DisplayImpl Simplified: addReferences

Steve,
Thanks for your reply.  Here are some follow-on questions.

> -----Original Message-----
> From: Steve Emmerson [mailto:steve@xxxxxxxxxxxxxxxx]
> Sent: Friday, January 25, 2002 12:54 PM
> 
> Because the RendererVector field that was protected by the above
> synchronization block is also accessed by other methods as 
> part of their
> transactions, removal of the synchronization block runs the risk of
> corrupting the invarients of the class.

Java in a Nutshell, 3rd Edition, p. 54 says: "If only one thread ever
accesses a data structure, there is no need to protect it with
synchronized."  So I'm still curious about when and why multiple threads
(using the same or other methods) might simultaneously modify a single
instance of DisplayImpl.  I'm hoping synchronization may not be necessary in
certain well-defined circumstances.  For example, if I'm not using VisAD's
distributed computing features, and I'm not doing any multi-threading in my
application, is this synchronization unnecessary?

> > What are the situations where mapslock could be accessed by 
> more than one
> > thread?  Is synchronization only necessary when doing 
> distributed computing
> with RMI?  If so, could we have an option in VisAD to turn 
> off support for
> > distributed computing when we don't need it?  Such an 
> option might be useful
> > elsewhere as well.
> 
> All VisAD Display-s have their own threads.

Are these the only threads that access the DisplayImpl objects?  How many
are there for each Display?  Is there somewhere I should look in the
documentation or code to learn more about the thread structure of VisAD?

Randall W. Simons
Sandia National Laboratories