Author: markt
Date: Wed Jul  4 20:35:34 2012
New Revision: 1357394

URL: http://svn.apache.org/viewvc?rev=1357394&view=rev
Log:
Tweak the async state diagram:
- add method names
- re-arrange some of the lines for clarity
- document the new state

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=1357394&r1=1357393&r2=1357394&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AsyncStateMachine.java Wed Jul  4 
20:35:34 2012
@@ -34,6 +34,7 @@ import org.apache.tomcat.util.res.String
  * STARTED       - ServletRequest.startAsync() has been called and the
  *                 request in which that call was made has finished
  *                 processing.
+ * READ_WRITE_OP - Performing an asynchronous read or write.
  * MUST_COMPLETE - complete() has been called before the request in which
  *                 ServletRequest.startAsync() has finished. As soon as that
  *                 request finishes, the complete() will be processed.
@@ -51,37 +52,41 @@ import org.apache.tomcat.util.res.String
  *
  * |----------------->--------------|
  * |                               \|/
- * |   |----------<---------------ERROR
- * |   |    complete()           /|\ |postProcess()
- * |   |                   error()|  |
- * |   |                          |  |  |--|timeout()
- * |   |           postProcess()  | \|/ | \|/            auto
- * |   |         |--------------->DISPATCHED<------------------COMPLETING<----|
- * |   |         |               /|\  |                          | /|\        |
- * |   |         |    |--->-------|   |                          |--|         |
- * |   |         ^    |               |startAsync()            timeout()      |
- * |   |         |    |               |                                       |
- * |  \|/        |    |  complete()  \|/        postProcess()                 |
- * | MUST_COMPLETE-<- | ----<------STARTING-->----------------|               ^
- * |      /|\         |               |                       |               |
- * |       |          |               |                       |               |
- * |       |          ^               |dispatch()             |               |
- * |       |          |               |                       |               |
- * |       |          |              \|/                     \|/   complete() |
- * |       |          |         MUST_DISPATCH              STARTED---->-------|
- * |       |          |           |                         |   |  \ \
- * |       |          |           |postProcess()            |   |   \ \
- * ^       ^          |           |              dispatch() |   |auto\ \
- * |       |          |           |    |--------------------|   |     \ 
\----<------
- * |       |          | auto     \|/  \|/                      \|/     \       
     \
- * |       |          |---<----DISPATCHING<-----------------TIMING_OUT  \      
      \
- * |       |                                  dispatch()      |   |      |     
       \
- * |       |                                                  |   |     \|/    
        |
- * |       |-------<-------------------------------------<----|   |   
READ_WRITE_OP ->-
- * |                              complete()              \-------|------|
- * |                                                              |      |
- * |----<------------------------<-----------------------------<--|------|
- *                                 error()
+ * |   
|----------<---------------ERROR-----------------------<----------------------------------|
+ * |   |      complete()         /|\ |                                         
                  |
+ * |   |                          |  |postProcess()                            
                  |
+ * |   |                   error()|  |                                         
                  |
+ * |   |                          |  |  |--|timeout()                          
                  |
+ * |   |           postProcess()  | \|/ | \|/            auto                  
                  |
+ * |   |         
|--------------->DISPATCHED<-----------------------COMPLETING<-----|            
|
+ * |   |         |               /|\  |                               | /|\    
     |            |
+ * |   |         |    |--->-------|   |                               |--|     
     |            |
+ * |   |         ^    |               |startAsync()                 timeout()  
     |            |
+ * |   |         |    |               |                                        
     |            |
+ * |  \|/        |    |  complete()  \|/        postProcess()                  
     |            |
+ * | MUST_COMPLETE-<- | ----<------STARTING-->--------------------|            
     ^            |
+ * |  /|\    /|\      |               |                           |      
complete() |            |
+ * |   |      |       |               |                           |     
/-----------|            |
+ * |   |      |       ^               |dispatch()                 |    /       
                  |
+ * |   |      |       |               |                           |   /        
                  |
+ * |   |      |       |              \|/                         \|/ /         
                  |
+ * |   |      |       |         MUST_DISPATCH                  STARTED         
                  |
+ * |   |      |       |           |                            /|  \ \         
                  |
+ * |   |      |       |           |postProcess()              / |   \ \        
                  |
+ * ^   |      ^       |           |              dispatch()  /  |    \ \       
                  |
+ * |   |      |       |           |                         /   |     \ \    
postProcess()       |
+ * |   |      |       |           |    |-------------------/    |auto  \ 
\----<--------------|   |
+ * |   |      |       | auto     \|/  \|/                      \|/      \      
              |   |
+ * |   |      |       |---<----DISPATCHING<-----------------TIMING_OUT   \     
              |   |
+ * |   |      |                               dispatch()      |   |      
|asyncOperation()   ^   |
+ * |   |      |                                               |   |     \|/    
              |   ^
+ * |   |      |-------<----------------------------------<----|   |      
READ_WRITE_OP->-----|   |
+ * |   |                          complete()                      |         |  
    |             |
+ * |   |                                                          |         |  
    |  error()    |
+ * |<- | ----<-------------------<-----------------------------<--|         |  
    |->-----------|
+ *     |                           error()                                  |
+ *     |                                                  complete()        |
+ *     |--------------------------------------------------------------------|
  * </pre>
  */
 public class AsyncStateMachine<S> {



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

Reply via email to