mirror of
https://github.com/MariaDB/server.git
synced 2025-02-02 03:51:50 +01:00
[t:4288], fix performance issue in unlock_worker_op in stress tests
git-svn-id: file:///svn/toku/tokudb@39608 c7de825b-a66e-492c-adef-691d508d4ae1
This commit is contained in:
parent
2c07ae33d7
commit
a6b90f1942
1 changed files with 10 additions and 8 deletions
|
@ -121,15 +121,17 @@ static void lock_worker_op(struct worker_extra* we) {
|
|||
|
||||
static void unlock_worker_op(struct worker_extra* we) {
|
||||
ARG arg = we->thread_arg;
|
||||
toku_pthread_mutex_lock(we->operation_lock_mutex);
|
||||
if (arg->lock_type == STRESS_LOCK_SHARED) {
|
||||
rwlock_read_unlock(we->operation_lock);
|
||||
} else if (arg->lock_type == STRESS_LOCK_EXCL) {
|
||||
rwlock_write_unlock(we->operation_lock);
|
||||
} else {
|
||||
assert(arg->lock_type == STRESS_LOCK_NONE);
|
||||
if (arg->lock_type != STRESS_LOCK_NONE) {
|
||||
toku_pthread_mutex_lock(we->operation_lock_mutex);
|
||||
if (arg->lock_type == STRESS_LOCK_SHARED) {
|
||||
rwlock_read_unlock(we->operation_lock);
|
||||
} else if (arg->lock_type == STRESS_LOCK_EXCL) {
|
||||
rwlock_write_unlock(we->operation_lock);
|
||||
} else {
|
||||
assert(false);
|
||||
}
|
||||
toku_pthread_mutex_unlock(we->operation_lock_mutex);
|
||||
}
|
||||
toku_pthread_mutex_unlock(we->operation_lock_mutex);
|
||||
}
|
||||
|
||||
static void *worker(void *arg_v) {
|
||||
|
|
Loading…
Add table
Reference in a new issue