Re: Re: trellis.Set.discard

"Phillip J. Eby" <pje-Wh6+Hckhi6HFNGf7iClzIwC/[email protected]>
Newsgroups gmane.comp.python.peak
Message-ID <[email protected]>
At 02:13 AM 10/12/2008 +0300, Sergey Schetinin wrote:
> >> There's more. For task, maintain rule runs twice, then undo run for
> >> both times. So it not run-undo-run or even run-undo-run-undo it's
> >> run-run-undo-undo. For @atomically it also runs twice, but without
> >> undo. How the same rule manages to run twice without undo?
> >
> > Because the first run is inside type(CV).__call__ - it's an initializer
> > that's supposed to be treated as if its run happened in a *previous* recalc
> > - and it should never be undone.
>
>Oh, I see! This indeed seem like the right thing to do, but if the
>initialization sets some discrete cells shouldn't they reset by the
>time this call returns?

I think you're almost right about this.  I say "almost" because you 
can pass data into this initialization; so should that count as a 
write?  I'm rather torn because the main use case for making the 
initialization special is to deal with Service objects, whose 
instantiation cannot be undone.  So, undoing their setup seems also wrong.


>This would also solve the futures issue, I
>believe.

Yes and no.  I think it could still be made to mess things up.  I 
don't think the initialization aspect is crucial to setting up a 
futures-based retry cause the partial rollback of a rule.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.