From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Controlled types and exception safety
Date: 02 Dec 2005 14:15:20 -0500
Date: 2005-12-02T14:15:20-05:00 [thread overview]
Message-ID: <wccoe3zs43b.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: dd6dnUHjOIDhEw3eRVn-pw@comcast.com
tmoran@acm.org writes:
> > it's *my* responsibility to judge the tradeoffs for each case separately.
> If you want "X := Y;" to leave X unchanged if there are problems during
> the assignment, consider how you might handle a similar problem if you were
> copying an important file on disk. You would probably do something like
> rename X -> X.bak
> copy Y -> X
> delete X.bak
> so that if their was a failure during copy you could still retrieve the
> file's data. How about doing something similar for the stack object?
> type stack is ...
> backup_copy : access stack;
> Finalize then makes a backup copy (perhaps just by swapping pointers
> around), which Adjust then deletes when it successfuly finishes, or which
> Adjust's exception handler uses to restore X if there's a problem.
> Finalize also puts the backup_copy, with a "delete after time T" time
> marker, on a queue for later garbage collection if this is a "terminal"
> Finalize - analogous to a nightly "delete *.bak".
But X := Y overwrites X before calling Adjust on it, so you can't store
the backup copy, or any way of accessing the backup copy, in X.
- Bob
next prev parent reply other threads:[~2005-12-02 19:15 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-11-30 13:57 Controlled types and exception safety Maciej Sobczak
2005-11-30 15:06 ` Dmitry A. Kazakov
2005-11-30 16:19 ` Maciej Sobczak
2005-12-01 0:05 ` Stephen Leake
2005-12-01 9:21 ` Dmitry A. Kazakov
2005-12-01 10:46 ` Maciej Sobczak
2005-12-01 15:08 ` Dmitry A. Kazakov
2005-12-02 4:17 ` Randy Brukardt
2005-12-02 9:29 ` Maciej Sobczak
2005-12-02 18:12 ` tmoran
2005-12-02 19:15 ` Robert A Duff [this message]
2005-12-02 21:42 ` tmoran
2005-12-06 9:00 ` Maciej Sobczak
2005-12-06 9:50 ` Dmitry A. Kazakov
2005-12-06 18:34 ` Jeffrey R. Carter
2005-12-06 19:34 ` Randy Brukardt
2005-12-06 21:20 ` Dmitry A. Kazakov
2005-12-07 1:57 ` Jeffrey R. Carter
2005-12-08 0:50 ` Randy Brukardt
2005-12-08 19:37 ` Jeffrey R. Carter
2005-12-09 2:36 ` Randy Brukardt
2005-12-09 6:33 ` Jeffrey R. Carter
2005-12-09 20:35 ` Randy Brukardt
2005-12-10 7:53 ` Jeffrey R. Carter
2005-12-06 20:43 ` Dmitry A. Kazakov
2005-12-07 2:00 ` Jeffrey R. Carter
2005-12-07 10:01 ` Dmitry A. Kazakov
2005-12-02 23:21 ` Robert A Duff
2005-11-30 17:46 ` Jean-Pierre Rosen
2005-11-30 21:02 ` Jeffrey R. Carter
2005-11-30 22:06 ` Björn Persson
2005-11-30 23:52 ` Randy Brukardt
2005-12-01 5:26 ` Jeffrey R. Carter
2005-12-02 23:51 ` Robert A Duff
2005-12-06 11:41 ` Peter C. Chapin
2005-12-06 12:50 ` Jean-Pierre Rosen
2005-12-06 13:06 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox