fli+freebsd-current at shapeshifter.se
Tue Dec 6 06:42:35 PST 2005
Giorgos Keramidas wrote:
> On 2005-12-06 14:18, Fredrik Lindberg <fli+freebsd-current at shapeshifter.se> wrote:
>>Dag-Erling Sm?rgrav wrote:
>>>Fredrik Lindberg <fli+freebsd-current at shapeshifter.se> writes:
>>>>Dag-Erling Sm?rgrav wrote:
>>>>>If the devd loop is an *alternative* to the polling loop, there's
>>>>>even less reason to use threads.
>>>>Yes it's an alternative, reading a variable versus doing a sysctl call
>>>>each interation. It seemed like I good idea, when I first wrote this
>>>>(almost a year ago), to have a thread providing a cached value of the
>>>>AC state. But maybe I was trying to be too smart or something.
>>>Yes. Not only is it a bad design idea, but the implementation is
>>>wrong, and likely to fail badly when compiled at high optimization
>>Ignoring the fact that it does work with -O3 (gcc 3.4.4), could you
>>please explain why it has the potential of failing with high
> I haven't looked at the source code, but I think what Dag-Erling means
> is that optimizing compilers, in high optimization mode, may inhibit
> sequential read operations of the same variable, trying to 'optimize'
> many read operations that would (to the best of their knowledge) return
> the same result.
> This is never going to happen if the variable is declared as 'volatile'
> though, so I'm not sure if it applies in this case, until I look at the
> sources of powerd.
Ah, ok. I was thinking of something like that. Anyway, thank you
for explaining this.
More information about the freebsd-current