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.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=ham 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: Wed, 20 Oct 2004 09:59:43 +0200 Message-ID: <41761AEF.2010404@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> <4174C40B.8070906@mailinator.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Trace: news.uni-berlin.de 6BwSpB+EHQR/rPocMEjJDQWqqTHWxw/cMxE0uW3CEq1+M9rso= User-Agent: Mozilla Thunderbird 0.8 (X11/20040913) X-Accept-Language: en-us, en In-Reply-To: Xref: g2news1.google.com comp.lang.ada:5497 Date: 2004-10-20T09:59:43+02:00 List-Id: Simon Wright wrote: > "Alex R. Mosteo" writes: > > >>It isn't that contradictory? If locking is costly in a protected >>object, using it for very frequent, very short actions seems >>pointless. It indeed will suggest to use it for rare, longer >>occurrences. > > > I suppose you need to time it. There's an (x86) hi-res Time package > inthe Booch Components (BC.Support.High_Resolution_Time, see > http://www.pushface.org/components/bc). > > For what it's worth, a mutex implemented using a protected type took > about 20 us on a 400 MHz PowerPC under VxWorks ... > > >>What's a spinlock? > > > I think it means to loop until a bit becomes clear, then set it (using > an indivisible test-and-set instruction). Doesn't work if you only > have one CPU of course; but if it does work, and the protected regions > are short (a few tens of instructions, depending), will be quicker > than calling some OS sleep() operation. Didn't know that english term for this. Thanks for the explanation. This is indeed a compelling argument, at least for multiprocessor machines.