Cannot compile
This commit is contained in:
@ -40,7 +40,7 @@ void
|
|||||||
spinlock_init(SPINLOCK *lock)
|
spinlock_init(SPINLOCK *lock)
|
||||||
{
|
{
|
||||||
lock->lock = 0;
|
lock->lock = 0;
|
||||||
#ifdef SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
lock->spins = 0;
|
lock->spins = 0;
|
||||||
lock->acquired = 0;
|
lock->acquired = 0;
|
||||||
lock->waiting = 0;
|
lock->waiting = 0;
|
||||||
@ -57,7 +57,7 @@ spinlock_init(SPINLOCK *lock)
|
|||||||
void
|
void
|
||||||
spinlock_acquire(SPINLOCK *lock)
|
spinlock_acquire(SPINLOCK *lock)
|
||||||
{
|
{
|
||||||
#ifdef SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
int spins = 0;
|
int spins = 0;
|
||||||
|
|
||||||
atomic_add(&(lock->waiting), 1);
|
atomic_add(&(lock->waiting), 1);
|
||||||
@ -65,12 +65,12 @@ int spins = 0;
|
|||||||
while (atomic_add(&(lock->lock), 1) != 0)
|
while (atomic_add(&(lock->lock), 1) != 0)
|
||||||
{
|
{
|
||||||
atomic_add(&(lock->lock), -1);
|
atomic_add(&(lock->lock), -1);
|
||||||
#ifdef SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
atomic_add(&(lock->spins), 1);
|
atomic_add(&(lock->spins), 1);
|
||||||
spins++;
|
spins++;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#ifdef SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
if (spins)
|
if (spins)
|
||||||
{
|
{
|
||||||
lock->contended++;
|
lock->contended++;
|
||||||
@ -97,7 +97,7 @@ spinlock_acquire_nowait(SPINLOCK *lock)
|
|||||||
atomic_add(&(lock->lock), -1);
|
atomic_add(&(lock->lock), -1);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
#ifdef SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
lock->acquired++;
|
lock->acquired++;
|
||||||
lock->owner = THREAD_SHELF();
|
lock->owner = THREAD_SHELF();
|
||||||
#endif
|
#endif
|
||||||
@ -112,7 +112,7 @@ spinlock_acquire_nowait(SPINLOCK *lock)
|
|||||||
void
|
void
|
||||||
spinlock_release(SPINLOCK *lock)
|
spinlock_release(SPINLOCK *lock)
|
||||||
{
|
{
|
||||||
#ifdef SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
if (lock->waiting > lock->max_waiting)
|
if (lock->waiting > lock->max_waiting)
|
||||||
lock->max_waiting = lock->waiting;
|
lock->max_waiting = lock->waiting;
|
||||||
#endif
|
#endif
|
||||||
@ -135,7 +135,7 @@ spinlock_release(SPINLOCK *lock)
|
|||||||
void
|
void
|
||||||
spinlock_stats(SPINLOCK *lock, void (*reporter)(void *, char *, int), void *hdl)
|
spinlock_stats(SPINLOCK *lock, void (*reporter)(void *, char *, int), void *hdl)
|
||||||
{
|
{
|
||||||
#ifdef SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
reporter(hdl, "Spinlock acquired", lock->acquired);
|
reporter(hdl, "Spinlock acquired", lock->acquired);
|
||||||
if (lock->acquired)
|
if (lock->acquired)
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@
|
|||||||
*/
|
*/
|
||||||
typedef struct spinlock {
|
typedef struct spinlock {
|
||||||
int lock; /*< Is the lock held? */
|
int lock; /*< Is the lock held? */
|
||||||
#if SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
int spins; /*< Number of spins on this lock */
|
int spins; /*< Number of spins on this lock */
|
||||||
int maxspins; /*< Max no of spins to acquire lock */
|
int maxspins; /*< Max no of spins to acquire lock */
|
||||||
int acquired; /*< No. of times lock was acquired */
|
int acquired; /*< No. of times lock was acquired */
|
||||||
@ -63,7 +63,7 @@ typedef struct spinlock {
|
|||||||
#define FALSE false
|
#define FALSE false
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if SPINLOCK_PROFILE
|
#if defined(SPINLOCK_PROFILE)
|
||||||
#define SPINLOCK_INIT { 0, 0, 0, 0, 0, 0, 0, 0 }
|
#define SPINLOCK_INIT { 0, 0, 0, 0, 0, 0, 0, 0 }
|
||||||
#else
|
#else
|
||||||
#define SPINLOCK_INIT { 0 }
|
#define SPINLOCK_INIT { 0 }
|
||||||
|
Reference in New Issue
Block a user