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=-0.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, FREEMAIL_REPLY autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,e44790cdcea9da82 X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!fu-berlin.de!uni-berlin.de!not-for-mail From: "Alex R. Mosteo" Newsgroups: comp.lang.ada Subject: Re: Problem with -gnatt Date: Tue, 19 Oct 2004 17:46:38 +0200 Message-ID: <417536DE.3060405@mailinator.com> References: <41651D37.4030805@mailinator.com> <2skt9qF1ljjdtU1@uni-berlin.de> <4165472D.2030704@mailinator.com> <416573FA.4010003@mailinator.com> <87k6u2mj08.fsf@insalien.org> <4166538E.6090907@mailinator.com> <41702af7$0$91003$39cecf19@news.twtelecom.net> <417377F7.7050506@mailinator.com> <4173f0ed$0$91003$39cecf19@news.twtelecom.net> <417409AB.8040702@mailinator.com> <4174BF2F.8050306@mailinator.com> <41752742$0$91006$39cecf19@news.twtelecom.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de U3G3LtpMjTHIL+55DPfz6A5YYHBTpX6RnGostAbrH29YLZLcc= User-Agent: Mozilla Thunderbird 0.8 (X11/20040913) X-Accept-Language: en-us, en In-Reply-To: <41752742$0$91006$39cecf19@news.twtelecom.net> Xref: g2news1.google.com comp.lang.ada:5464 Date: 2004-10-19T17:46:38+02:00 List-Id: Matthew Heaney wrote: > "Alex R. Mosteo" wrote in message > news:4174BF2F.8050306@mailinator.com... > >>Matthew Heaney wrote: >> >>>The Control_Type certainly *will* prevent such mistakes. >> >>I think he refers to *locking* and not *unlocking* which is, BTW, my >>principal objection too. > > > We're not talking generalities here. We're talking about a very specific > piece of code. In that piece of code, you "remembered" to write the http > logging feature as a protected action. If you can remember to do that, then > surely you can "remember" to call a semaphore! What's the difference? I coulnd't forget to write that as a protected procedure, since the data reported is protected. If I must read it, I must do it inside the protected procedure. If I unprotect that collection and start using semaphores, nobody will warn me when I forget that a lock is to be honored. Furthermore, a second reviewer/coder could easily not notice that a lock is required around accesses to that data, or miss a comment about it. > My advice is to stop fighting the language... And I see your point. It's simply that I don't see the big damage in what I'm doing. It's an advice. My service isn't that long. The collection will hold at worst a hundred elements. Maybe I'm abusing the language, but surely not fighting against it (IMO). It's not like I were making unchecked_conversions or taking 'Unrestricted_references all over the place and going the C way. It's simply that I prefer a protected than a semaphore. Let's assume said report costs a whole one second worst case. The user uses it a couple times each hour. And let's assume there are a lot of protected, short procedures, that also access that collection. Clearly start using semaphores is going down the abstraction level path, and looking for problems. The bottom line is: I'm only degrading the performance abusing the protected construction? Or could I get erroneous execution? If there's nothing suggesting the later (which I don't believe or I wouldn't be arguing about it), I find the cost worth it.