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: Mon, 18 Oct 2004 20:21:31 +0200 Message-ID: <417409AB.8040702@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> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de Tmdq05Dt4eMCiDThJI4vPwah/g13udW3dO21nMEegLklPE7Hw= User-Agent: Mozilla Thunderbird 0.8 (X11/20040913) X-Accept-Language: en-us, en In-Reply-To: <4173f0ed$0$91003$39cecf19@news.twtelecom.net> Xref: g2news1.google.com comp.lang.ada:5409 Date: 2004-10-18T20:21:31+02:00 List-Id: Matthew Heaney wrote: > "Alex R. Mosteo" wrote in message > news:417377F7.7050506@mailinator.com... > >>Sole instance of a Map: >> > > http://deepsix.homeip.net/svn/Adagio%20head/src/download/adagio-download-manager.adb > > Note that protected operations should only execute "for a short time." Your > Http_Report_Downloads protected operation could take longer than a "short > time," if the map is large. Consider using a semaphore style lock, > something like: I know the RM advice but, is there any special reason why it's better to wait for a semaphore instead of a protected object? I don't need timeouts nor abort semantics, I'll just wait what it is needed. > procedure Http_Report_Downloads (...) is > Control : Control_Type (Semaphore'Access); > begin > ... -- safely manipulate map that you now have locked > end; > > where Control_Type calls Semaphore.Seize during controlled Initialization, > and calls Semaphore.Release during controlled Finalization. I already have a class like this, but I simply don't like manually putting semaphores around except for a good reason. Please enlight me :)