Re: Simultaneous destructors
Chris Jones <[email protected]>
| Newsgroups | gmane.comp.mozilla.devel.dom |
|---|---|
| Message-ID | <[email protected]> |
Jason Duell wrote: >> I can offer a hand-wavy argument about why I think that state divergence >> makes protocols harder to reason about. >> >> is a protocol that allows state to permanently diverge. When reasoning >> about this protocol, I need to keep the "branch" of the divergence in >> mind, and consider two paths (states synced, states not). Now, I could >> take this same pattern, recursively graft it into S1 and S2, and now I >> have two more branch points. So there are 6 stable states in the >> protocol, and my C++ code has to keep track of two levels of possibly >> different paths taken through parent/child. Then recursively graft ... > BTW, I think a better way of saying this is "with divergent state, reasoning about the protocol becomes an O(n^2) operation in the number of states, rather than O(n)." > Perhaps we could set a limit on how many such divergences a protocol > is allowed > to have. We certainly don't need to support the sort of example > you're giving. > Seems like a slippery slope to me, since that limit would have to monotonically increase with time. >> It seems desirable to me that we do not require acknowledging every message: >> when the channel has data available, it sends that data along and doesn't >> cache it. > > I agree with bsmedberg here. But I can start by seeing how much of a > pain it is > to cache data if we can't modify IPDL (or do it in time: it hopefully > won't be > long). > I think it would be an interesting experiment to try. Probably only need to spec out the code, short of writing it, to see how much of a pain queueing dataavailable would be. Cheers, Chris