Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 152 → Rev 153

/SPARTAN/trunk/src/synch/rwlock.c
1,8 → 1,4
/*
* Reader/Writer locks
*/
 
/*
* Copyright (C) 2001-2004 Jakub Jermar
* All rights reserved.
*
30,7 → 26,12
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
 
 
/*
* Reader/Writer locks
*/
 
/*
* These locks are not recursive.
* Neither readers nor writers will suffer starvation.
*
/SPARTAN/trunk/src/synch/spinlock.c
29,6 → 29,7
#include <arch.h>
 
#include <arch/atomic.h>
#include <arch/barrier.h>
#include <synch/spinlock.h>
 
#ifdef __SMP__
50,6 → 51,7
i = 0;
}
}
CS_ENTER_BARRIER();
 
}
#else
60,16 → 62,23
* implementation of spinlock.
*/
spinlock_arch(&sl->val);
CS_ENTER_BARRIER();
}
#endif
 
int spinlock_trylock(spinlock_t *sl)
{
return !test_and_set(&sl->val);
int rc;
rc = !test_and_set(&sl->val);
CS_ENTER_BARRIER();
return rc;
}
 
void spinlock_unlock(spinlock_t *sl)
{
CS_LEAVE_BARRIER();
sl->val = 0;
}