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.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,8c564a80b820db35 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.135.231 with SMTP id pv7mr17080391pbb.8.1331061518516; Tue, 06 Mar 2012 11:18:38 -0800 (PST) Path: h9ni46897pbe.0!nntp.google.com!news2.google.com!goblin1!goblin2!goblin.stu.neva.ru!aioe.org!.POSTED!not-for-mail From: "Dmitry A. Kazakov" Newsgroups: comp.lang.ada Subject: Re: Any leap year issues caused by Ada yesterday? Date: Tue, 6 Mar 2012 20:18:33 +0100 Organization: cbb software GmbH Message-ID: References: <4f4f746a$0$6565$9b4e6d93@newsspool3.arcor-online.net> <20608866.730.1330963171058.JavaMail.geo-discussion-forums@ynbq18> <1t8v4akrmapkl.1xwfi9yxtw2ji$.dlg@40tude.net> <18ghv3yeh1a1k$.1bjwdaps59rt3$.dlg@40tude.net> Reply-To: mailbox@dmitry-kazakov.de NNTP-Posting-Host: /bBpnkeEm9kG1v1C1CjDFw.user.speranza.aioe.org Mime-Version: 1.0 X-Complaints-To: abuse@aioe.org User-Agent: 40tude_Dialog/2.0.15.1 X-Notice: Filtered by postfilter v. 0.8.2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Date: 2012-03-06T20:18:33+01:00 List-Id: On Tue, 06 Mar 2012 17:59:04 +0000, Simon Wright wrote: > The timebase ran off the same crystal as the decrementer, so all were > internally sync'd. Internally, our synchronised time was > (Ada.Calendar.Clock (at last clock interrupt, of course) + high-res time > since last clock interrupt). You could improve that a bit by putting Ada.Calendar.Clock into a loop. When it returns a different value, you exit the loop and take that value for the time base. If the quartz is same you need not to synchronize it anymore. Since the multiplier is known you simply add the RTC minus its value at the base multiplied by the factor and converted to Duration (or Time_Span) to the base and use that instead of the original Ada's Clock. Did you check the kernel settings? It has a variable that sets the time source to the RTC. This might work on your PPC's BSP. The effect is that the system clock is changed each time when queried rather than upon timer interrupts. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de