comp.lang.ada
 help / color / mirror / Atom feed
From: tmoran@acm.org
Subject: Re: Controlled types and exception safety
Date: Fri, 02 Dec 2005 12:12:12 -0600
Date: 2005-12-02T12:12:12-06:00	[thread overview]
Message-ID: <dd6dnUHjOIDhEw3eRVn-pw@comcast.com> (raw)
In-Reply-To: dmp464$8m2$1@sunnews.cern.ch

> 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".



  reply	other threads:[~2005-12-02 18:12 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 [this message]
2005-12-02 19:15                 ` Robert A Duff
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