Print

Print


Hi Jerome,

There is no comprehensive state diagram because the states are relatively 
complex. The basic sequence is:

do_Select->[do_State]->{do_Found | do_Fail | 
[do_Wait[->do_Found]->]do_Delay}

To start do_Select can be optionally followed by a do_State. This state is 
entered if do_Select resulted in a nil state or conditions indicate that 
do_State is still pending for one or more servers. This is followed by one 
of three states: do_Found (file found), do_Fail (file conclusively not 
found) or an optionally prefixed sequence of additional states that may 
resolve into a do_Found or a do_Delay.

The do_Have state is asynchronous and if entered when the corresponding 
state is do_Wait then do_Wait transitions to do_Found. However, note that 
do_Wait is optional and sometimes is not entered. Additionally, do_Wait is a 
temporary state and if do_Have does not occur when this state is active, we 
automatically transition to do_Delay.

The do_Found state redirects the client, do_Fail tells the client the file 
does not exist, and the do_Delay state tells the client to come back later. 
All are ending states.

Hope this answers things a bit.

Andy

-----Original Message----- 
From: Jerome LAURET
Sent: Tuesday, April 19, 2011 8:05 AM
To: xrootd-l
Subject: simple question on flow diagram


Is there a write-up somewhere documenting the state diagram
related to your messages do_State, do_Have, do_Select etc ...?

Thank you,

-- 
             ,,,,,
            ( o o )
         --m---U---m--
             Jerome