aboutsummaryrefslogtreecommitdiffstats
path: root/ajdoc/testdata/spacewar/doc/coordination/Coordinator.html
diff options
context:
space:
mode:
authormkersten <mkersten>2004-04-07 04:09:26 +0000
committermkersten <mkersten>2004-04-07 04:09:26 +0000
commit7b3b23d506b17635209bd8b3b3671e42f9ccacb1 (patch)
treebf6c7d0a1c4e344e68dd28b5f6634fa282fe3126 /ajdoc/testdata/spacewar/doc/coordination/Coordinator.html
parent213f48fcbc1f10dd33e608b66acd4d75276bd4f9 (diff)
downloadaspectj-7b3b23d506b17635209bd8b3b3671e42f9ccacb1.tar.gz
aspectj-7b3b23d506b17635209bd8b3b3671e42f9ccacb1.zip
Regenerated test data.
Diffstat (limited to 'ajdoc/testdata/spacewar/doc/coordination/Coordinator.html')
-rw-r--r--ajdoc/testdata/spacewar/doc/coordination/Coordinator.html221
1 files changed, 202 insertions, 19 deletions
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>