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: