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 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!proxad.net!proxad.net!194.159.246.34.MISMATCH!peer-uk.news.demon.net!kibo.news.demon.net!news.demon.co.uk!demon!not-for-mail From: Simon Wright Newsgroups: comp.lang.ada Subject: Re: Problem with -gnatt Date: 20 Oct 2004 06:19:18 +0100 Organization: Pushface Sender: simon@smaug.pushface.org Message-ID: 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> NNTP-Posting-Host: pogner.demon.co.uk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: news.demon.co.uk 1098249942 17103 62.49.19.209 (20 Oct 2004 05:25:42 GMT) X-Complaints-To: abuse@demon.net NNTP-Posting-Date: Wed, 20 Oct 2004 05:25:42 +0000 (UTC) User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.1 Xref: g2news1.google.com comp.lang.ada:5487 Date: 2004-10-20T06:19:18+01:00 List-Id: "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. -- Simon Wright 100% Ada, no bugs.