EXP: Add sched_yield() after every unlock
This commit is contained in:
@@ -33,6 +33,7 @@
|
||||
#define UNLOCK(lp) \
|
||||
{ \
|
||||
isc_mutex_unlock((lp)); \
|
||||
sched_yield(); \
|
||||
ISC_UTIL_TRACE(fprintf(stderr, "UNLOCKED %p %s %d\n", (lp), \
|
||||
__FILE__, __LINE__)); \
|
||||
}
|
||||
|
||||
@@ -36,9 +36,10 @@ typedef enum {
|
||||
}
|
||||
#define RWUNLOCK(lp, t) \
|
||||
{ \
|
||||
isc_rwlock_unlock((lp), (t)); \
|
||||
sched_yield(); \
|
||||
ISC_UTIL_TRACE(fprintf(stderr, "RWUNLOCK %p, %d %s %d\n", \
|
||||
(lp), (t), __FILE__, __LINE__)); \
|
||||
isc_rwlock_unlock((lp), (t)); \
|
||||
}
|
||||
|
||||
#define RDLOCK(lp) RWLOCK(lp, isc_rwlocktype_read)
|
||||
|
||||
@@ -32,6 +32,7 @@
|
||||
#define SPINUNLOCK(sp) \
|
||||
{ \
|
||||
isc_spinlock_unlock((sp)); \
|
||||
sched_yield(); \
|
||||
ISC_UTIL_TRACE(fprintf(stderr, "SPINUNLOCKED %p %s %d\n", \
|
||||
(sp), __FILE__, __LINE__)); \
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user