1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-02-05 03:24:26 +00:00

Don't yield on grabbing the read lock variant of cglocks.

This commit is contained in:
Con Kolivas 2013-06-15 12:35:16 +10:00
parent 6789c96fd4
commit 736dfb4075

View File

@ -721,10 +721,15 @@ static inline void mutex_lock(pthread_mutex_t *lock)
quit(1, "WTF MUTEX ERROR ON LOCK!"); quit(1, "WTF MUTEX ERROR ON LOCK!");
} }
static inline void mutex_unlock(pthread_mutex_t *lock) static inline void mutex_unlock_noyield(pthread_mutex_t *lock)
{ {
if (unlikely(pthread_mutex_unlock(lock))) if (unlikely(pthread_mutex_unlock(lock)))
quit(1, "WTF MUTEX ERROR ON UNLOCK!"); quit(1, "WTF MUTEX ERROR ON UNLOCK!");
}
static inline void mutex_unlock(pthread_mutex_t *lock)
{
mutex_unlock_noyield(lock);
sched_yield(); sched_yield();
} }
@ -793,7 +798,7 @@ static inline void cg_rlock(cglock_t *lock)
{ {
mutex_lock(&lock->mutex); mutex_lock(&lock->mutex);
rd_lock(&lock->rwlock); rd_lock(&lock->rwlock);
mutex_unlock(&lock->mutex); mutex_unlock_noyield(&lock->mutex);
} }
/* Intermediate variant of cglock */ /* Intermediate variant of cglock */