You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2011/06/09 22:10:24 UTC

svn commit: r1134063 - /tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java

Author: markt
Date: Thu Jun  9 20:10:23 2011
New Revision: 1134063

URL: http://svn.apache.org/viewvc?rev=1134063&view=rev
Log:
Document the state transition diagram

Modified:
    tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java

Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1134063&r1=1134062&r2=1134063&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java Thu Jun  9 20:10:23 2011
@@ -24,8 +24,8 @@ import org.apache.tomcat.util.res.String
 
 /**
  * Manages the state transitions for async requests.
- * TODO: State transition diagram
  * 
+ * <pre>
  * The internal states that are used are:
  * DISPATCHED    - Standard request. Not in Async mode.
  * STARTING      - ServletRequest.startAsync() has been called but the
@@ -48,6 +48,41 @@ import org.apache.tomcat.util.res.String
  *                 request finishes, the dispatch() will be processed.
  * DISPATCHING   - The dispatch is being processed.
  * ERROR         - Something went wrong.
+ *
+ * |----------------->---------------|                                         
+ * |                                \|/                                        
+ * |   |----------<----------------ERROR                                    
+ * |   |    complete()            /|\  |                                       
+ * |   |                    error()|   |postProcess()                          
+ * |   |                           |   |                                       
+ * |   |           postProcess()   |  \|/         auto                         
+ * |   |         |--------------->DISPATCHED<------------------COMPLETING<----| 
+ * |   |         |               /|\  |                          | /|\        | 
+ * |   |         |    |--->-------|   |                          |--|         | 
+ * |   |         ^    |               |startAsync()            timeout()      |
+ * |   |         |    |               |                                       | 
+ * |  \|/        |    |  complete()  \|/        postProcess()                 | 
+ * | MUST_COMPLETE-<- | ----<------STARTING-->----------------|               ^     
+ * |      /|\         |               |                       |               |         
+ * |       |          |               |                       |               |         
+ * |       |          ^               |dispatch()             |               |         
+ * |       |          |               |                       |               |         
+ * |       |          |              \|/                     \|/   complete() |         
+ * |       |          |         MUST_DISPATCH              STARTED---->-------|   
+ * |       |          |           |                         |   |                        
+ * |       |          |           |postProcess()            |   |                        
+ * ^       ^          |           |              dispatch() |   |auto                        
+ * |       |          |           |    |--------------------|   |                        
+ * |       |          | auto     \|/  \|/                      \|/                         
+ * |       |          |---<----DISPATCHING<-----------------TIMING_OUT                              
+ * |       |                                  dispatch()      |   |             
+ * |       |                                                  |   |            
+ * |       |-------<-------------------------------------<----|   |            
+ * |                              complete()                      |            
+ * |                                                              |            
+ * |----<------------------------<-----------------------------<--|            
+ *                                 error()
+ * </pre>                               
  */
 public class AsyncStateMachine {
 



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


Re: svn commit: r1134063 - /tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java

Posted by Rainer Jung <ra...@kippdata.de>.
I like it :)

On 09.06.2011 22:10, markt@apache.org wrote:
> Author: markt
> Date: Thu Jun  9 20:10:23 2011
> New Revision: 1134063
> 
> URL: http://svn.apache.org/viewvc?rev=1134063&view=rev
> Log:
> Document the state transition diagram
> 
> Modified:
>     tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
> 
> Modified: tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java
> URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java?rev=1134063&r1=1134062&r2=1134063&view=diff
> ==============================================================================
> --- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java (original)
> +++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java Thu Jun  9 20:10:23 2011
> @@ -24,8 +24,8 @@ import org.apache.tomcat.util.res.String
>  
>  /**
>   * Manages the state transitions for async requests.
> - * TODO: State transition diagram
>   * 
> + * <pre>
>   * The internal states that are used are:
>   * DISPATCHED    - Standard request. Not in Async mode.
>   * STARTING      - ServletRequest.startAsync() has been called but the
> @@ -48,6 +48,41 @@ import org.apache.tomcat.util.res.String
>   *                 request finishes, the dispatch() will be processed.
>   * DISPATCHING   - The dispatch is being processed.
>   * ERROR         - Something went wrong.
> + *
> + * |----------------->---------------|                                         
> + * |                                \|/                                        
> + * |   |----------<----------------ERROR                                    
> + * |   |    complete()            /|\  |                                       
> + * |   |                    error()|   |postProcess()                          
> + * |   |                           |   |                                       
> + * |   |           postProcess()   |  \|/         auto                         
> + * |   |         |--------------->DISPATCHED<------------------COMPLETING<----| 
> + * |   |         |               /|\  |                          | /|\        | 
> + * |   |         |    |--->-------|   |                          |--|         | 
> + * |   |         ^    |               |startAsync()            timeout()      |
> + * |   |         |    |               |                                       | 
> + * |  \|/        |    |  complete()  \|/        postProcess()                 | 
> + * | MUST_COMPLETE-<- | ----<------STARTING-->----------------|               ^     
> + * |      /|\         |               |                       |               |         
> + * |       |          |               |                       |               |         
> + * |       |          ^               |dispatch()             |               |         
> + * |       |          |               |                       |               |         
> + * |       |          |              \|/                     \|/   complete() |         
> + * |       |          |         MUST_DISPATCH              STARTED---->-------|   
> + * |       |          |           |                         |   |                        
> + * |       |          |           |postProcess()            |   |                        
> + * ^       ^          |           |              dispatch() |   |auto                        
> + * |       |          |           |    |--------------------|   |                        
> + * |       |          | auto     \|/  \|/                      \|/                         
> + * |       |          |---<----DISPATCHING<-----------------TIMING_OUT                              
> + * |       |                                  dispatch()      |   |             
> + * |       |                                                  |   |            
> + * |       |-------<-------------------------------------<----|   |            
> + * |                              complete()                      |            
> + * |                                                              |            
> + * |----<------------------------<-----------------------------<--|            
> + *                                 error()
> + * </pre>                               
>   */
>  public class AsyncStateMachine {

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org