aboutsummaryrefslogtreecommitdiffstats
path: root/ajdoc/testdata/spacewar/doc/coordination
diff options
context:
space:
mode:
Diffstat (limited to 'ajdoc/testdata/spacewar/doc/coordination')
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/Condition.html12
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/CoordinationAction.html13
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/Coordinator.html221
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/Exclusion.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/Method.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/MethodState.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/Mutex.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/Selfex.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/TimeoutException.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/package-frame.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/package-summary.html2
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/package-tree.html2
12 files changed, 232 insertions, 32 deletions
diff --git a/ajdoc/testdata/spacewar/doc/coordination/Condition.html b/ajdoc/testdata/spacewar/doc/coordination/Condition.html
index f59e7c297..11a17148c 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/Condition.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/Condition.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
Condition
</TITLE>
@@ -90,6 +90,10 @@ Interface Condition</H2>
<P>
+ Interface for pre-conditions that are passed to guardedEntry methods of
+ Coordinator.
+ Conditions should be passed as anonymous classes that simply implement
+ the checkit method.
<P>
<P>
@@ -119,7 +123,9 @@ Interface Condition</H2>
<TD><CODE><B><A HREF="../coordination/Condition.html#checkit()">checkit</A></B>()</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method is called automatically by Coordinator.guardedEntry(...)
+ and it's called everytime the coordination state changes.</TD>
</TR>
</TABLE>
&nbsp;
@@ -147,6 +153,8 @@ checkit</H3>
public boolean <B>checkit</B>()</PRE>
<DL>
<DD>
+ This method is called automatically by Coordinator.guardedEntry(...)
+ and it's called everytime the coordination state changes.
<P>
<DD><DL>
</DL>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/CoordinationAction.html b/ajdoc/testdata/spacewar/doc/coordination/CoordinationAction.html
index 6898803ea..89fdcbad9 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/CoordinationAction.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/CoordinationAction.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
CoordinationAction
</TITLE>
@@ -90,6 +90,10 @@ Interface CoordinationAction</H2>
<P>
+ Interface for coordination actions that are passed to guardedEntry methods of
+ Coordinator.
+ Coordination actions should be passed as anonymous classes that simply
+ implement the doit method.
<P>
<P>
@@ -119,7 +123,9 @@ Interface CoordinationAction</H2>
<TD><CODE><B><A HREF="../coordination/CoordinationAction.html#doit()">doit</A></B>()</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method is called by Coordinator.guardedEntry(...) and
+ Coordinator.guardedExit(...).</TD>
</TR>
</TABLE>
&nbsp;
@@ -147,6 +153,9 @@ doit</H3>
public void <B>doit</B>()</PRE>
<DL>
<DD>
+ This method is called by Coordinator.guardedEntry(...) and
+ Coordinator.guardedExit(...). Use it for changing coordination state
+ upon entering and exiting methods.
<P>
<DD><DL>
</DL>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/Coordinator.html b/ajdoc/testdata/spacewar/doc/coordination/Coordinator.html
index 8765d0636..8dd0a7095 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/Coordinator.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/Coordinator.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
Coordinator
</TITLE>
@@ -97,6 +97,39 @@ java.lang.Object
<P>
+ The Coordinator class provides the basic functionality for synchronizing
+ and coordinating different threads upon entering and exiting methods.
+ It can be used in two different ways:
+ 1) by instantiating regular coordinator objects that are used by aspects; or
+ 2) by extending it (sub-classing) with coordinator aspects.
+ <P>
+ Method invocations are the smallest units for defining critical sections
+ and pre-conditions. The use of coordinators, either regular objects or aspect
+ instances, should always end up by invoking guardedEntry(...) in a
+ before weave and guardedExit(...) in an after weave for all methods that
+ need coordination. guardedEntry and guardedExit are the methods that
+ actually manage the synchronization and coordination constraints given
+ by their parameters and by pre-existent exclusion markers.
+ <P>
+ The synchronization of threads for the execution of critical section
+ methods in an object is done by marking those methods as self- and/or
+ mutually-exclusive (addSelfex, addMutex).
+ Just by itself, addSelfex("M") does not enforce the self-exclusion
+ of method M - enforcement is done by invoking guardedEntry before
+ M is executed. Similarly, addMutex(new String[] {"M1", "M2"}) does
+ not enforce the mutual exclusion between methods M1 and M2.
+ <P>
+ A guardedEntry on a method that has been marked as self-exclusive
+ ensures that the method is executed in the invoked object by only one thread
+ at a time. A guardedEntry on a method that has been marked has mutually-
+ exclusive with other methods ensures that the execution of that method
+ by a thread in the invoked object temporarily blocks the execution by
+ other threads of the methods that are in the same mutex set.
+ <P>
+ The coordination of threads, i.e. their explicit suspension and
+ resumption, is done through the use of pre-conditions and coordination
+ actions that are passed as parameters to guardedEntry and guardedExit
+ with the form of anonymous classes.
<P>
<P>
@@ -115,10 +148,10 @@ java.lang.Object
<!-- ======== ADVICE SUMMARY ======= -->
<TABLE BORDER="1" WIDTH="100%" CELLPADDING="1"CELLSPACING="0"><TR><TD COLSPAN=2 BGCOLOR="#CCCCFF"><FONT SIZE="+2"><B>Advice Summary</B></FONT></TD></TR>
-<TR><TD><A HREF="#before(): synchronizationPoint.."><TT><B>before(): synchronizationPoint..</B></TT></A><BR>&nbsp;<TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
+<TR><TD><A HREF="#before(): synchronizationPoint.."><TT><B>before(): synchronizationPoint..</B></TT></A><BR>&nbsp;<TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="../spacewar/SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
</TR></TD>
</TD></TR><TD>
-<TR><TD><A HREF="#after(): synchronizationPoint.."><TT><B>after(): synchronizationPoint..</B></TT></A><BR>&nbsp;<TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
+<TR><TD><A HREF="#after(): synchronizationPoint.."><TT><B>after(): synchronizationPoint..</B></TT></A><BR>&nbsp;<TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="../spacewar/SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
</TR></TD>
</TD></TR><TD>
</TABLE><P>&nbsp;
@@ -155,7 +188,9 @@ java.lang.Object
<TD><CODE><B><A HREF="../coordination/Coordinator.html#addMutex(java.lang.String[])">addMutex</A></B>(java.lang.String[]&nbsp;methNames)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Takes an array of multi-part method names and marks those
+ methods as mutually exclusive.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -163,7 +198,9 @@ java.lang.Object
<TD><CODE><B><A HREF="../coordination/Coordinator.html#addSelfex(java.lang.String)">addSelfex</A></B>(java.lang.String&nbsp;methName)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Takes a multi-part method name (eg "BoundedBuffer.put")
+ and marks that method as self-exclusive.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -171,7 +208,10 @@ java.lang.Object
<TD><CODE><B><A HREF="../coordination/Coordinator.html#guardedEntry(java.lang.String)">guardedEntry</A></B>(java.lang.String&nbsp;methName)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method is the guard for enforcing all synchronization and
+ coordination constraints of a given method, and it should be called
+ just before the method is executed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -180,7 +220,9 @@ java.lang.Object
<A HREF="../coordination/Condition.html" title="interface in coordination">Condition</A>&nbsp;condition)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Just like guardedEntry(String methName), but the given method is executed
+ only when the given condition is true.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -190,7 +232,11 @@ java.lang.Object
<A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A>&nbsp;action)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Just like guardedEntry(String methName), but the given method is executed
+ only when the given condition is true; the additional
+ coordination action that is executed before the given method is
+ executed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -199,7 +245,10 @@ java.lang.Object
<A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A>&nbsp;action)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Just like guardedEntry(String methName), but with an additional
+ coordination action that is executed before the given method is
+ executed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -210,7 +259,10 @@ java.lang.Object
long&nbsp;millis)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -220,7 +272,10 @@ java.lang.Object
long&nbsp;millis)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -230,7 +285,10 @@ java.lang.Object
long&nbsp;millis)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -239,7 +297,10 @@ java.lang.Object
long&nbsp;millis)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -247,7 +308,10 @@ java.lang.Object
<TD><CODE><B><A HREF="../coordination/Coordinator.html#guardedExit(java.lang.String)">guardedExit</A></B>(java.lang.String&nbsp;methName)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ This method provides the means for updating all synchronization and
+ coordination state after the execution of a given method, and it should be
+ called after the method is executed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -256,7 +320,9 @@ java.lang.Object
<A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A>&nbsp;action)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Just like guardedExit(String methName) but with an additional
+ coordination action that is executed.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -264,7 +330,9 @@ java.lang.Object
<TD><CODE><B><A HREF="../coordination/Coordinator.html#removeMutex(java.lang.String[])">removeMutex</A></B>(java.lang.String[]&nbsp;methNames)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Takes an array of multi-part method names that correspond
+ to an existing mutex set and remove the mutual exclusion constraint.</TD>
</TR>
<TR BGCOLOR="white" CLASS="TableRowColor">
<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
@@ -272,7 +340,8 @@ java.lang.Object
<TD><CODE><B><A HREF="../coordination/Coordinator.html#removeSelfex(java.lang.String)">removeSelfex</A></B>(java.lang.String&nbsp;methName)</CODE>
<BR>
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ Takes a multi-part method name (e.g.</TD>
</TR>
</TABLE>
&nbsp;<A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
@@ -306,12 +375,12 @@ java.lang.Object
</TR>
</TABLE><A NAME="before(): synchronizationPoint.."><!-- --></A>
<H3>before</H3><P><TT><B>before(): synchronizationPoint..</B></TT>
-<P><P><TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
+<P><P><TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="../spacewar/SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
</TR></TD>
<P><HR>
<A NAME="after(): synchronizationPoint.."><!-- --></A>
<H3>after</H3><P><TT><B>after(): synchronizationPoint..</B></TT>
-<P><P><TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
+<P><P><TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000>&nbsp;Advises:</b></font></td><td><A HREF="Display1.html#paintObjects(Graphics)"><tt>spacewar.Display1.paintObjects</tt></A>, <A HREF="Display2.html#paintObjects(Graphics)"><tt>spacewar.Display2.paintObjects</tt></A>, <A HREF="Game.html#resetShips()"><tt>spacewar.Game.resetShips</tt></A>, <A HREF="Game.html#newPlayer(int)"><tt>spacewar.Game.newPlayer</tt></A>, <A HREF="Game.html#newRobot(int)"><tt>spacewar.Game.newRobot</tt></A>, <A HREF="Game.html#clockTick()"><tt>spacewar.Game.clockTick</tt></A>, <A HREF="Game.html#handleCollisions()"><tt>spacewar.Game.handleCollisions</tt></A>, <A HREF="Registry.html#dummy()"><tt>spacewar.Registry.dummy</tt></A>, <A HREF="Robot.html#run()"><tt>spacewar.Robot.run</tt></A>, <A HREF="../spacewar/SpaceObject.html"><tt>spacewar.SpaceObject</tt></A>, <A HREF="SpaceObject.html#die()"><tt>spacewar.SpaceObject.die</tt></A></B></FONT></TD></TR></TABLE>
</TR></TD>
<P><!-- ============ FIELD DETAIL =========== -->
@@ -351,6 +420,10 @@ addSelfex</H3>
public void <B>addSelfex</B>(java.lang.String&nbsp;methName)</PRE>
<DL>
<DD>
+ Takes a multi-part method name (eg "BoundedBuffer.put")
+ and marks that method as self-exclusive.
+ No checks are made with respect to the existence of the method
+ whose name is given.
<P>
<DD><DL>
</DL>
@@ -364,6 +437,8 @@ removeSelfex</H3>
public void <B>removeSelfex</B>(java.lang.String&nbsp;methName)</PRE>
<DL>
<DD>
+ Takes a multi-part method name (e.g. "BoundedBuffer.put")
+ and removes that method from the list of self-exclusive methods.
<P>
<DD><DL>
</DL>
@@ -377,6 +452,10 @@ addMutex</H3>
public void <B>addMutex</B>(java.lang.String[]&nbsp;methNames)</PRE>
<DL>
<DD>
+ Takes an array of multi-part method names and marks those
+ methods as mutually exclusive.
+ No checks are made with respect to the existence of the methods
+ whose names are given.
<P>
<DD><DL>
</DL>
@@ -390,6 +469,9 @@ removeMutex</H3>
public void <B>removeMutex</B>(java.lang.String[]&nbsp;methNames)</PRE>
<DL>
<DD>
+ Takes an array of multi-part method names that correspond
+ to an existing mutex set and remove the mutual exclusion constraint.
+ If the given mutex set does not exist, removeMutex does nothing.
<P>
<DD><DL>
</DL>
@@ -403,6 +485,18 @@ guardedEntry</H3>
public void <B>guardedEntry</B>(java.lang.String&nbsp;methName)</PRE>
<DL>
<DD>
+ This method is the guard for enforcing all synchronization and
+ coordination constraints of a given method, and it should be called
+ just before the method is executed.
+ In this form, only the method name is given. The only constraints
+ checked are the exclusion constraints.
+ If the method was previousely marked as selfex (through addSelfex),
+ guardedEntry ensures that the method is executed only when no other
+ thread is executing it.
+ If the method was previousely marked as being in one or more mutex
+ sets, guardedEntry ensures that the method is executed only when no other
+ thread is executing any of the methods with which the give method is
+ mutexed.
<P>
<DD><DL>
</DL>
@@ -417,6 +511,26 @@ public void <B>guardedEntry</B>(java.lang.String&nbsp;methName,
<A HREF="../coordination/Condition.html" title="interface in coordination">Condition</A>&nbsp;condition)</PRE>
<DL>
<DD>
+ Just like guardedEntry(String methName), but the given method is executed
+ only when the given condition is true.
+ guardedEntry is the guard for enforcing all synchronization and
+ coordination constraints of a given method, and it should be called
+ just before the method is executed.
+ In this form, the method name is given along with a condition.
+ The constraints checked are the exclusion constraints and whether
+ the given condition is true.
+ If the method was previousely marked as selfex (through addSelfex),
+ guardedEntry ensures that the method is executed only when no other
+ thread is executing it.
+ If the method was previousely marked as being in one or more mutex
+ sets, guardedEntry ensures that the method is executed only when no other
+ thread is executing any of the methods with which the give method is
+ mutexed.
+ If the condition is false, guardedEntry suspends the current thread.
+ That thread remains suspended until the condition becomes true, in
+ which case all constraints are rechecked before the method is executed.
+ When all exclusion constraints are checked and the given condition is
+ true, the given method is executed.
<P>
<DD><DL>
</DL>
@@ -431,6 +545,23 @@ public void <B>guardedEntry</B>(java.lang.String&nbsp;methName,
<A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A>&nbsp;action)</PRE>
<DL>
<DD>
+ Just like guardedEntry(String methName), but with an additional
+ coordination action that is executed before the given method is
+ executed.
+ guardedEntry is the guard for enforcing all synchronization and
+ coordination constraints of a given method, and it should be called
+ just before the method is executed.
+ In this form, the method name is given along with a coordination action.
+ The only constraints checked are the exclusion constraints.
+ If the method was previousely marked as selfex (through addSelfex),
+ guardedEntry ensures that the method is executed only when no other
+ thread is executing it.
+ If the method was previousely marked as being in one or more mutex
+ sets, guardedEntry ensures that the method is executed only when no other
+ thread is executing any of the methods with which the give method is
+ mutexed.
+ The given coordination action is executed just before the given method
+ is executed.
<P>
<DD><DL>
</DL>
@@ -446,6 +577,31 @@ public void <B>guardedEntry</B>(java.lang.String&nbsp;methName,
<A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A>&nbsp;action)</PRE>
<DL>
<DD>
+ Just like guardedEntry(String methName), but the given method is executed
+ only when the given condition is true; the additional
+ coordination action that is executed before the given method is
+ executed.
+ guardedEntry is the guard for enforcing all synchronization and
+ coordination constraints of a given method, and it should be called
+ just before the method is executed.
+ In this form, the method name is given along with a condition and
+ a coordination action.
+ The constraints checked are the exclusion constraints and whether the
+ given condition is true.
+ If the method was previousely marked as selfex (through addSelfex),
+ guardedEntry ensures that the method is executed only when no other
+ thread is executing it.
+ If the method was previousely marked as being in one or more mutex
+ sets, guardedEntry ensures that the method is executed only when no other
+ thread is executing any of the methods with which the give method is
+ mutexed.
+ If the condition is false, guardedEntry suspends the current thread.
+ That thread remains suspended until the condition becomes true, in
+ which case all constraints are rechecked before the method is executed.
+ When all exclusion constraints are checked and the given condition is
+ true, the given method is executed.
+ The given coordination action is executed just before the given method
+ is executed.
<P>
<DD><DL>
</DL>
@@ -461,6 +617,9 @@ public void <B>guardedEntryWithTimeout</B>(java.lang.String&nbsp;methName,
throws <A HREF="../coordination/TimeoutException.html" title="class in coordination">TimeoutException</A></PRE>
<DL>
<DD>
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.
<P>
<DD><DL>
@@ -479,6 +638,9 @@ public void <B>guardedEntryWithTimeout</B>(java.lang.String&nbsp;methName,
throws <A HREF="../coordination/TimeoutException.html" title="class in coordination">TimeoutException</A></PRE>
<DL>
<DD>
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.
<P>
<DD><DL>
@@ -497,6 +659,9 @@ public void <B>guardedEntryWithTimeout</B>(java.lang.String&nbsp;methName,
throws <A HREF="../coordination/TimeoutException.html" title="class in coordination">TimeoutException</A></PRE>
<DL>
<DD>
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.
<P>
<DD><DL>
@@ -516,6 +681,9 @@ public void <B>guardedEntryWithTimeout</B>(java.lang.String&nbsp;methName,
throws <A HREF="../coordination/TimeoutException.html" title="class in coordination">TimeoutException</A></PRE>
<DL>
<DD>
+ This method is similar to guardedEntry, but it takes
+ an additional parameter - the milliseconds after which any suspension
+ will abort with a timeout.
<P>
<DD><DL>
@@ -531,6 +699,12 @@ guardedExit</H3>
public void <B>guardedExit</B>(java.lang.String&nbsp;methName)</PRE>
<DL>
<DD>
+ This method provides the means for updating all synchronization and
+ coordination state after the execution of a given method, and it should be
+ called after the method is executed.
+ In this form, only the method name is given.
+ The synchronization state for self- and mutual-exclusion is
+ automatically upadted.
<P>
<DD><DL>
</DL>
@@ -545,6 +719,15 @@ public void <B>guardedExit</B>(java.lang.String&nbsp;methName,
<A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A>&nbsp;action)</PRE>
<DL>
<DD>
+ Just like guardedExit(String methName) but with an additional
+ coordination action that is executed.
+ guardedExit provides the means for updating all synchronization and
+ coordination state after the execution of a given method, and it should be
+ called after the method is executed.
+ In this form, the method name is given along with a coordination action.
+ The synchronization state for self- and mutual-exclusion is
+ automatically upadted.
+ The given coordination action is executed.
<P>
<DD><DL>
</DL>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/Exclusion.html b/ajdoc/testdata/spacewar/doc/coordination/Exclusion.html
index 3adbbcbd8..fb2b2a4cc 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/Exclusion.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/Exclusion.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
Exclusion
</TITLE>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/Method.html b/ajdoc/testdata/spacewar/doc/coordination/Method.html
index ec6596b3a..8ed9da7ab 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/Method.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/Method.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
Method
</TITLE>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/MethodState.html b/ajdoc/testdata/spacewar/doc/coordination/MethodState.html
index df5cad790..324788f53 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/MethodState.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/MethodState.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
MethodState
</TITLE>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/Mutex.html b/ajdoc/testdata/spacewar/doc/coordination/Mutex.html
index ceb108de9..aca1f71b7 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/Mutex.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/Mutex.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
Mutex
</TITLE>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/Selfex.html b/ajdoc/testdata/spacewar/doc/coordination/Selfex.html
index 5836f9bd9..5e09bb6e8 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/Selfex.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/Selfex.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
Selfex
</TITLE>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/TimeoutException.html b/ajdoc/testdata/spacewar/doc/coordination/TimeoutException.html
index 6c0ed5e8c..9cc93e7ff 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/TimeoutException.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/TimeoutException.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:05 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:28 PDT 2004 -->
<TITLE>
TimeoutException
</TITLE>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/package-frame.html b/ajdoc/testdata/spacewar/doc/coordination/package-frame.html
index 881d93bd3..3b2752a15 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/package-frame.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/package-frame.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:03 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:27 PDT 2004 -->
<TITLE>
coordination
</TITLE>
diff --git a/ajdoc/testdata/spacewar/doc/coordination/package-summary.html b/ajdoc/testdata/spacewar/doc/coordination/package-summary.html
index eb7fd0ecc..a1d3ffd30 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/package-summary.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/package-summary.html
@@ -1 +1 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:03 PST 2004 --><TITLE>coordination</TITLE><META NAME="keywords" CONTENT="coordination package"><LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="coordination";}</SCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;PREV PACKAGE&nbsp;&nbsp;<A HREF="../spacewar/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../index.html" target="_top"><B>FRAMES</B></A> &nbsp;&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;&nbsp;<SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><H2>Package coordination</H2><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Interface Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Condition.html" title="interface in coordination">Condition</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Exclusion.html" title="interface in coordination">Exclusion</A></B></TD><TD></TD></TR></TABLE>&nbsp;<P><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Class Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Coordinator.html" title="class in coordination">Coordinator</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Method.html" title="class in coordination">Method</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/MethodState.html" title="class in coordination">MethodState</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Mutex.html" title="class in coordination">Mutex</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Selfex.html" title="class in coordination">Selfex</A></B></TD><TD></TD></TR></TABLE>&nbsp;<P><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Exception Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/TimeoutException.html" title="class in coordination">TimeoutException</A></B></TD><TD></TD></TR></TABLE>&nbsp;<P><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;PREV PACKAGE&nbsp;&nbsp;<A HREF="../spacewar/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../index.html" target="_top"><B>FRAMES</B></A> &nbsp;&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;&nbsp;<SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR></BODY></HTML> \ No newline at end of file
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:27 PDT 2004 --><TITLE>coordination</TITLE><META NAME="keywords" CONTENT="coordination package"><LINK REL ="stylesheet" TYPE="text/css" HREF="../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="coordination";}</SCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;PREV PACKAGE&nbsp;&nbsp;<A HREF="../spacewar/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../index.html" target="_top"><B>FRAMES</B></A> &nbsp;&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;&nbsp;<SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><H2>Package coordination</H2><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Interface Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Condition.html" title="interface in coordination">Condition</A></B></TD><TD> Interface for pre-conditions that are passed to guardedEntry methods of Coordinator.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A></B></TD><TD> Interface for coordination actions that are passed to guardedEntry methods of Coordinator.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Exclusion.html" title="interface in coordination">Exclusion</A></B></TD><TD></TD></TR></TABLE>&nbsp;<P><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Class Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Coordinator.html" title="class in coordination">Coordinator</A></B></TD><TD> The Coordinator class provides the basic functionality for synchronizing and coordinating different threads upon entering and exiting methods.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Method.html" title="class in coordination">Method</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/MethodState.html" title="class in coordination">MethodState</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Mutex.html" title="class in coordination">Mutex</A></B></TD><TD></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/Selfex.html" title="class in coordination">Selfex</A></B></TD><TD></TD></TR></TABLE>&nbsp;<P><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Exception Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD WIDTH="15%"><B><A HREF="../coordination/TimeoutException.html" title="class in coordination">TimeoutException</A></B></TD><TD></TD></TR></TABLE>&nbsp;<P><HR><!-- ======= START OF BOTTOM NAVBAR ====== --><A NAME="navbar_bottom"><!-- --></A><A HREF="#skip-navbar_bottom" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_bottom_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Package</B></FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <FONT CLASS="NavBarFont1">Class</FONT>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">&nbsp;PREV PACKAGE&nbsp;&nbsp;<A HREF="../spacewar/package-summary.html"><B>NEXT PACKAGE</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../index.html" target="_top"><B>FRAMES</B></A> &nbsp;&nbsp;<A HREF="package-summary.html" target="_top"><B>NO FRAMES</B></A> &nbsp;&nbsp;<SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR></TABLE><A NAME="skip-navbar_bottom"></A><!-- ======== END OF BOTTOM NAVBAR ======= --><HR></BODY></HTML> \ No newline at end of file
diff --git a/ajdoc/testdata/spacewar/doc/coordination/package-tree.html b/ajdoc/testdata/spacewar/doc/coordination/package-tree.html
index 2bdabe26d..3c51367e6 100644
--- a/ajdoc/testdata/spacewar/doc/coordination/package-tree.html
+++ b/ajdoc/testdata/spacewar/doc/coordination/package-tree.html
@@ -2,7 +2,7 @@
<!--NewPage-->
<HTML>
<HEAD>
-<!-- Generated by javadoc (build 1.4.2_04) on Tue Mar 30 08:51:03 PST 2004 -->
+<!-- Generated by javadoc (build 1.4.2_04) on Tue Apr 06 19:57:27 PDT 2004 -->
<TITLE>
coordination Class Hierarchy
</TITLE>