From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: fac41,9a0ff0bffdf63657 X-Google-Attributes: gidfac41,public X-Google-Thread: 1108a1,9a0ff0bffdf63657 X-Google-Attributes: gid1108a1,public X-Google-Thread: 103376,4b06f8f15f01a568 X-Google-Attributes: gid103376,public X-Google-Thread: f43e6,9a0ff0bffdf63657 X-Google-Attributes: gidf43e6,public From: Tim Ottinger Subject: Re: Software landmines (loops) Date: 1998/09/02 Message-ID: <35EDF063.CD63C649@oma.com>#1/1 X-Deja-AN: 387329792 Content-Transfer-Encoding: 7bit References: <6renh8$ga7$1@nnrp1.dejanews.com> <6rf59b$2ud$1@nnrp1.dejanews.com> <6rfra4$rul$1@nnrp1.dejanews.com> <35DBDD24.D003404D@calfp.co.uk> <6sbuod$fra$1@hirame.wwa.com> <35f51e53.48044143@news.erols.com> <6sdiav$e0g$1@hirame.wwa.com> <6sfcft$70p$1@hirame.wwa.com> <6shp40$ec8$1@nnrp1.dejanews.com> <6sie46$eb7$1@hirame.wwa.com> <6siijm$h1m$1@hirame.wwa.com> <6sjl6v$5qh$1@hirame.wwa.com> <8ZxgNSAbqa71EwTM@radm.demon.co.uk> Content-Type: text/plain; charset=us-ascii Organization: Object Mentor Mime-Version: 1.0 Newsgroups: comp.lang.eiffel,comp.object,comp.software-eng,comp.lang.ada Date: 1998-09-02T00:00:00+00:00 List-Id: Richard Melvin wrote: > This seems a weak argument, as there can easily be no way whatsoever to > put things back the way they were - the most obvious example is a sort > function. > > (Unless you copy the initial state of the array before sorting, which > can be done just as easily in a little stack-based transaction object.) Actually, did you see the C++ Report articles on exception-safe containers? This is exactly what had to be done... Yeah, we suddenly have to be aware of unit of work all through our apps. We have to be able to commit or rollback at just about any time, and ensure the commit is atomic fairly often. As if software weren't hard enough... but it's kind of like doing accounting. If you know that the transactions balance, then they are very unlikely to throw the ledger off-balance when you post them (not that you stop checking).