[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Subject: RE: [bt-spec] When to garbage collect cohesions?
cancel_transaction will terminate the cohesion - this was considerably
why we split apart cancel_inferiors and cancel_transaction (previously
cancel/inferiors and cancel/whole) in the solution of issue 79. This is
stated tersely in the abstract message descriptions (after the parameter lists,
with a note about cancel_inferiors/all ), and better explained in the model
section that covers evolution of the confirm-set, for which my skeleton
is:
terminator may issue PREPARE_INFERIORS for some subset of the Inferiors *but only to a composer*
terminator may issue REQUEST_INFERIOR_STATUSES - regardless of type
terminator may issue CANCEL_INFERIORS for some subset *but only to a composer*
those can be issued repeatedly, in any order.
eventually, terminator issues one of
CANCEL_TRANSACTION - cancels all inferiors and ends the transaction
CONFIRM_TRANSACTION if this is a cohesion composer, the inferiors-list parameter may be present, and the confirm-set is only the inferiors in it if the inferiors list is absent (which it must be for an atom coordinator, and can be for a cohesion composer) the confirm-set is all un-resigned inferiors.
If RESIGN has been or is received from an inferior, that inferior is immediately removed from the set of inferiors, and from the confirm-set (if it was in it) CANCEL is sent to all inferiors not in the confirm-set (only applies for cohesions) if for any inferiors in the confirm-set, neither PREPARED or CANCELLED has been received and PREPARE has not been sent to it, PREPARE is now sent
if (eventually) for all inferiors in the confirm-set set, PREPARED has been received, the list of inferiors is persisted. if this works, CONFIRM is sent to the inferiors of the confirm-set.
If CANCELLED is received from any infeiror in the confirm-set, all the confirm-set is cancelled.
which looks like it's going to come out as a state diagram (and perhaps needs a little tweaking to cover spontaneous PREPARED, CANCELLED, RESIGN in the "active" phase) Peter
|
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [Elist Home]
Powered by eList eXpress LLC