Re: flock(fd, LOCK_UN) taking 500ms+ ?

From: Manfred Spraul (manfred@colorfullife.com)
Date: Wed Oct 02 2002 - 16:36:46 EST


akpm wrote:
> It's not really clear why that yield is in there at all? Unless that
> code is really, really slow (milliseconds) then probably it should just
> be deleted.
>
It looks like a very simple starvation control:

thread 1:
        for(;;) {
                F_LOCK
                <do a few seconds work>
                F_UNLCK
        }
thread 2:
        F_LOCK.

If there is no yield after unlock, thread 2 might never receive the lock.
Is it possible to figure out if someone is waiting on the lock? F_UNLCK
should schedule, if there is a waiter with higher priority.

--
	Manfred

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Mon Oct 07 2002 - 22:00:36 EST