In message <[EMAIL PROTECTED]>, Matthew Dillon wri
tes:

>    However, I think to be complete we need to make it even less elegant.
>    The TC module is only flip-flopping between two time counters, which
>    means that it can flip-flop twice and the test will not work.  We need
>    a generation count on the timecounter as well:
>
>        do {
>            tc = timecounter;
>            gen = tc->tc_generation;
>            *bt = tc->tc_offset;
>            bintime_addx(bt, tc->tc_scale * tco_delta(tc));
>        } while (tc != timecounter || tc->tc_generation != gen);

No, more like:

        do {
                tc = timecounter;
                gen = tc->gen;
                ...
        } while (gen != tc->gen);

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
[EMAIL PROTECTED]         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message

Reply via email to