kernels/linux-2.4.0/arch/ia64/kernel/semaphore.c
/*
 * Wait for the lock to become unbiased.  Readers are non-exclusive.
 */
Wait for the lock to become unbiased.  Readers are non-exclusive.
Wait for the lock to become unbiased . Readers are non - exclusive .
void
__down_read_failed (struct rw_semaphore *sem, long count)
{
	while (1) {
		if (count == -1) {
			down_read_failed_biased(sem);
			return;
		}
		down_read_failed(sem);
		count = ia64_fetch_and_add(-1, &sem->count);
		if (count >= 0)
			return;
	}
}
void __down_read_failed ( struct rw_semaphore * sem , long count ) { while ( 1 ) { if ( count == -1 ) { down_read_failed_biased ( sem ) ; return ; } down_read_failed ( sem ) ; count = ia64_fetch_and_add ( -1 , & sem -> count ) ; if ( count >= 0 ) return ; } }
Wait for the lock to become unbiased.
Wait for the lock to become unbiased .
/* unbiased */