Revision: 5212
Author: hansonr
Date: 2006-06-10 08:37:01 -0700 (Sat, 10 Jun 2006)
ViewCVS: http://svn.sourceforge.net/jmol/?rev=5212&view=rev
Log Message:
-----------
bob200603 but with consequences for 10.3 if desired by others
Geodesic synchronization (or lack thereof) causes pages
with multiple applets to fail to load some of those applets
and generate a Normix error.
fixed using static flags rather than synchronization
Testing on MSIE, Firefox, and Opera /Windows
shows perfect once-through synchronization per browser session.
Modified Paths:
--------------
branches/bob200603/Jmol/src/org/jmol/g3d/Geodesic3D.java
Modified: branches/bob200603/Jmol/src/org/jmol/g3d/Geodesic3D.java
===================================================================
--- branches/bob200603/Jmol/src/org/jmol/g3d/Geodesic3D.java 2006-06-10
14:53:29 UTC (rev 5211)
+++ branches/bob200603/Jmol/src/org/jmol/g3d/Geodesic3D.java 2006-06-10
15:37:01 UTC (rev 5212)
@@ -171,19 +171,35 @@
static short[][] faceVertexesArrays;
static Vector3f[] vertexVectors;
- Geodesic3D(Graphics3D g3d) {
- this.g3d = g3d;
- if (vertexCounts == null)
+
+ Geodesic3D(Graphics3D g3d) {
+ this.g3d = g3d;
+ //String msg = "Geodesecs "+ System.currentTimeMillis();
+ //System.out.println(msg+" 0");
initialize();
- }
+ //System.out.println(msg+" 1");
+ }
- private synchronized void initialize() {
- if (vertexCounts != null)
+ static Boolean[] testInit = new Boolean[1];
+ private void initialize() {
+ //System.out.println("geodesic init " + testInit[0] + " started");
+ if (testInit[0] != null) {
+ while (!testInit[0].booleanValue()) {
+ try{
+ Thread.sleep(10);
+ } catch(Exception e) {
+ System.out.println("geodesic constructor error "+e);
+ }
+ //System.out.println("geodesic init "+ testInit + " waiting");
+ }
+ //System.out.println("geodesic init skipped");
return;
+ }
+ testInit[0] = Boolean.FALSE;
+ //System.out.println("geodesic init " + testInit + " continuing");
vertexCounts = new short[maxLevel];
neighborVertexesArrays = new short[maxLevel][];
faceVertexesArrays = new short[maxLevel][];
-
vertexVectors = new Vector3f[12];
vertexVectors[0] = new Vector3f(0, 0, halfRoot5);
for (int i = 0; i < 5; ++i) {
@@ -214,6 +230,8 @@
" edgeCount=" + getEdgeCount(i));
}
}
+ System.out.println("geodesic initialization completed");
+ testInit[0] = Boolean.TRUE;
}
static int getVertexCount(int level) {
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
_______________________________________________
Jmol-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jmol-commits