This is an automated email from the ASF dual-hosted git repository.

masaori pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficserver.git


The following commit(s) were added to refs/heads/master by this push:
     new 9b7734e89c Add state transition diagram of StripeSM (#12791)
9b7734e89c is described below

commit 9b7734e89cda178aae3f01da5d8edf3cd097a7be
Author: Masaori Koshiba <[email protected]>
AuthorDate: Tue Feb 3 11:15:35 2026 +0900

    Add state transition diagram of StripeSM (#12791)
---
 src/iocore/cache/StripeSM.h | 50 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 50 insertions(+)

diff --git a/src/iocore/cache/StripeSM.h b/src/iocore/cache/StripeSM.h
index 40bb972bab..ca6d0a6334 100644
--- a/src/iocore/cache/StripeSM.h
+++ b/src/iocore/cache/StripeSM.h
@@ -60,6 +60,56 @@ struct StripeInitInfo;
 class CacheEvacuateDocVC;
 class RamCache;
 
+/**
+  @class StripeSM
+
+  @startuml
+  hide empty description
+
+  [*] --> aggWrite : Constructor
+
+  note right of aggWrite
+    Can be called:
+    1. As handler (event system)
+    2. Directly from CacheVC::handleWrite
+    3. Directly from CacheSync::mainEvent
+    4. Directly from aggWriteDone
+  end note
+
+  aggWrite --> aggWriteDone
+
+  note bottom of aggWriteDone
+    calls aggWrite() directly
+    without changing state
+  end note
+
+  aggWrite --> evacuateDocReadDone : evac_range()
+
+  note bottom of evacuateDocReadDone
+    calls aggWrite() directly
+    without changing state
+  end note
+
+  aggWrite --> handle_header_read  : init(false)
+  aggWrite --> handle_dir_clear : init(true)
+
+  handle_header_read --> handle_dir_read
+  handle_header_read --> handle_dir_clear : clear_dir_aio()
+
+  handle_dir_read --> handle_recover_from_data : recover_data()
+  handle_dir_read --> handle_dir_clear : clear_dir_aio()
+
+  handle_recover_from_data --> handle_recover_write_dir
+  handle_recover_from_data --> handle_dir_clear : clear_dir_aio()
+
+  handle_recover_write_dir --> dir_init_done
+
+  handle_dir_clear --> dir_init_done
+
+  dir_init_done--> aggWrite
+
+  @enduml
+ */
 class StripeSM : public Continuation, public Stripe
 {
 public:

Reply via email to