From 877c0690c62fb038de3f47a3d7f41bb32960ed33 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Thu, 29 Jun 2017 17:24:21 +0200 Subject: Fixes wrong order in lock release. --- src/knowledge/knowledge_locks.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/knowledge/knowledge_locks.c b/src/knowledge/knowledge_locks.c index 8d83664..be37ee7 100644 --- a/src/knowledge/knowledge_locks.c +++ b/src/knowledge/knowledge_locks.c @@ -288,10 +288,6 @@ int JH_knowledge_readunlock_word { int err; - if (JH_knowledge_readunlock_words(k, io) < 0) - { - return -1; - } err = pthread_rwlock_unlock(&(k->words[i].lock)); @@ -304,6 +300,13 @@ int JH_knowledge_readunlock_word strerror(err) ); + JH_knowledge_readunlock_words(k, io); + + return -1; + } + + if (JH_knowledge_readunlock_words(k, io) < 0) + { return -1; } @@ -319,11 +322,6 @@ int JH_knowledge_writeunlock_word { int err; - if (JH_knowledge_readunlock_words(k, io) < 0) - { - return -1; - } - err = pthread_rwlock_unlock(&(k->words[i].lock)); if (err != 0) @@ -335,6 +333,13 @@ int JH_knowledge_writeunlock_word strerror(err) ); + JH_knowledge_readunlock_words(k, io); + + return -1; + } + + if (JH_knowledge_readunlock_words(k, io) < 0) + { return -1; } -- cgit v1.2.3-70-g09d2