Re: Simultaneous destructors
Jason Duell <[email protected]>
| Newsgroups | gmane.comp.mozilla.devel.dom |
|---|---|
| Organization | http://groups.google.com |
| Message-ID | <736bc12c-ec55-4352-99a2-c9dd99bf41d3@y28g2000prd.googlegroups.com> |
> 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 ... 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. > 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 understood |discard| to be a mechanism that allows you to tell the compiler > exactly what you wrote above, that a message is no longer needed. Your proposal for |discard| sounds fine. Jason