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 22:38:36 +0200 Message-ID: <41757B4C.1080503@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> <417536DE.3060405@mailinator.com> <41756ffe$0$91007$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 16YSpAsMy2PCzI8aXJ7c5QWXt5KHPAt6EKj5sdKU95ZpiDRWI= User-Agent: Mozilla Thunderbird 0.8 (X11/20040913) X-Accept-Language: en-us, en In-Reply-To: <41756ffe$0$91007$39cecf19@news.twtelecom.net> Xref: g2news1.google.com comp.lang.ada:5473 Date: 2004-10-19T22:38:36+02:00 List-Id: Matthew Heaney wrote: > "Alex R. Mosteo" wrote in message > news:417536DE.3060405@mailinator.com... > >>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. > > > That just pushes back the argument. If you can "remember" to declare the > data inside a protected object, then surely you can "remember" to guard it > with a semaphore. Well, for me is a push that I don't like, since it goes from the compiler's responsability to mine. At design time I just say: "this datum is to be thread safe", and I put it in a protected. Forget about it. If I say "this datum is to be accessed with a semaphore", I must remember everytime. Yes, it is localized in the body, but it is still another thing to remember. Let's invoke Murphy here ;) >>If I unprotect that collection and start using semaphores, nobody will >>warn me when I forget that a lock is to be honored. > > > Who is "me"? The data in question is inside a package body, and the only > way to manipulate that data is to use the operations provided by the > package. So clearly a client of the package cannot forget to "honor a > lock," since he sees neither the data nor the semaphore. "Me", as in the one making the implementation of the package. Of course, once it is done and well done, there's no issue.