diff options
author | mkersten <mkersten> | 2004-04-07 04:09:26 +0000 |
---|---|---|
committer | mkersten <mkersten> | 2004-04-07 04:09:26 +0000 |
commit | 7b3b23d506b17635209bd8b3b3671e42f9ccacb1 (patch) | |
tree | bf6c7d0a1c4e344e68dd28b5f6634fa282fe3126 /ajdoc/testdata/spacewar/doc/coordination/Coordinator.html | |
parent | 213f48fcbc1f10dd33e608b66acd4d75276bd4f9 (diff) | |
download | aspectj-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.html | 221 |
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> <TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000> 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> <TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000> 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> <TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000> 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> <TABLE WIDTH="100%" BGCOLOR=#FFFFFF><TR><TD width="10%" bgcolor="#FFD8B0"><B><FONT COLOR=000000> 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> @@ -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[] methNames)</CODE> <BR> - </TD> + + 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 methName)</CODE> <BR> - </TD> + + 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 methName)</CODE> <BR> - </TD> + + 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> condition)</CODE> <BR> - </TD> + + 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> action)</CODE> <BR> - </TD> + + 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> action)</CODE> <BR> - </TD> + + 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 millis)</CODE> <BR> - </TD> + + 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 millis)</CODE> <BR> - </TD> + + 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 millis)</CODE> <BR> - </TD> + + 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 millis)</CODE> <BR> - </TD> + + 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 methName)</CODE> <BR> - </TD> + + 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> action)</CODE> <BR> - </TD> + + 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[] methNames)</CODE> <BR> - </TD> + + 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 methName)</CODE> <BR> - </TD> + + Takes a multi-part method name (e.g.</TD> </TR> </TABLE> <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> 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> 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> 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> 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 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 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[] 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[] 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 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 methName, <A HREF="../coordination/Condition.html" title="interface in coordination">Condition</A> 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 methName, <A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A> 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 methName, <A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A> 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 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 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 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 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 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 methName, <A HREF="../coordination/CoordinationAction.html" title="interface in coordination">CoordinationAction</A> 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> |