You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@trafficserver.apache.org by Chao Xu <xu...@gmail.com> on 2015/11/17 11:30:37 UTC

ATS Internals(source reading / ATS源代码阅读) in Chinese

Dear All,

I’m writting a document to introduce the event system, io core, proxy sm,
etc ...

The event system section has been done at last weekend.

It can be found at : https://github.com/oknet/atsinternals .

Hope it is useful to ats developers.

And I'm drawing some interesting flow charts, like one below:


+-------------+
       +-------------------------------------------------------------o
   Sleep    |
       |                                         +-------+
+------^------+
       |                                         |       |                  |
       |                 +---------+  +----------V--+ +--o------------+     |
       |                 |  START  |  |process_event| | Interval Event|     |
       |                 +----o----+  +----------o--+ +--^------------+     |
       |                      |                  #       %                  |
       |                      |                  #       %                  |
       |   ################   |                  #       %                  |
       |   #              #   |                  #       %                  |
+------V---o--+        +--V---V---V--+        +--V-------V--+
+------o------+
|   External  |        |   External  |        |    Event    |        |
   Flush    |
|    Event    o-------->  EventQueue o-------->             o-------->
            |
|    Queue    |        |   (local)   |        |    Queue    |        |
  Signals   |
+------^------+        +--o---^---o--+        +--^---^---^--+
+------o------+
       |                  #   %   #              #   %   #                  |
       |                  #   %   ################   %   #                  |
       |                  #   %                      %   #                  |
       |                  #   %  +----------------+  %   #                  |
       |                  #   %  |   Timed Event  <%%%   #                  |
       |                  #   %  +--------o-------+      #                  |
       |                  #   %           |              #                  |
       |                  #   %  +--------V-------+      #                  |
       |                  #   %  | process_event  |      #                  |
       |                  #   %  +--------^-------+      #                  |
       |                  #   %           |              #                  |
       |                  #   %  +--------o-------+      #                  |
       |                  #   %%%> Immediate Event<%%%   #                  |
       |                  #      +--------^-------+  %   #                  |
       |                  #                          %   #                  |
       |                  #       ################   %   #                  |
       |                  #       #              #   %   #                  |
       |               +--V-------V--+        +--o---V---o--+
+------V------+
       |               |   Negative  |        |   External  |        |
  External  |
       +---------------o             <--------o  EventQueue <--------o
   Event    |
                       |    Queue    |        |   (local)   |        |
   Queue    |
                       +-------------+        +----------^--+
+--o----------+
                                                         #              #
                                                         ################

o--------->  execute route
o#########>  event route
<%%%%%%%%%>  call and return


Thanks!

Best Regard,

Oknet Xu


大家好,

我写了一个文档,介绍 事件系统,IO 核心,Proxy状态机等内容。

上个周末我已经完成了第一个部分:事件系统。

可以通过 https://github.com/oknet/atsinternals 找到这份文档。

徐超