On Tue, 2007-07-17 at 14:16 -0700, David Schwartz wrote: > > * Ian Kent <[EMAIL PROTECTED]> wrote: > > > > > Yes it does and I have two reported bugs so far. > > > > > > In several places I have code similar to: > > > > > > wait.tv_sec = time(NULL) + 1; > > > wait.tv_nsec = 0; > > > > > > signaled = 0; > > > while (!signaled) { > > > status = pthread_cond_timedwait(&cond, &mutex, &wait); > > > if (status) { > > > if (status == ETIMEDOUT) > > > break; > > > fatal(status); > > > } > > > } > > > > ah! It passes in a low-res time source into a high-res time interface > > (pthread_cond_timedwait()). Could you change the time(NULL) + 1 to > > time(NULL) + 2, or change it to: > > > > gettimeofday(&wait, NULL); > > wait.tv_sec++; > > > > does this solve the spinning?
Yes, adding in the offset within the current second appears to resolve the issue. Thanks Ingo. > > > > i'm wondering how widespread this is. If automount is the only app doing > > this then _maybe_ we could get away with it by changing automount? I don't think the change is unreasonable since I wasn't using an accurate time in the condition wait, so that's a coding mistake on my part which I will fix. Ian - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/