On Monday, April 18, 2005 11:55:01 PM +0200 Horst Birthelmer <[EMAIL PROTECTED]> wrote:
So you agree with my initial posting that we didn't really have a problem here and that this is not the cause for those volserver hangs.
Yes, and no.
You originally said that not holding the mutex when calling cond_broadcast does not introduce a race. I agree with that statement.
However, there actually is a race, because the FSYNC lock is not held continuously from when BreakLaterCallBacks() decides there is no more work to do until FsyncCheckLWP() calls pthread_cond_timedwait. So it is possible for more callbacks to be added and the broadcast to be sent during this window, which will result in no work being done until Fsync_CheckLWP wakes up on the 5 minute timeout.
In practice, I think that race should be uncommon, but I haven't worked out how likely the various possible scheduling variants are.
-- Jeff _______________________________________________ OpenAFS-devel mailing list [email protected] https://lists.openafs.org/mailman/listinfo/openafs-devel
