| summaryrefslogtreecommitdiff |
diff options
Diffstat (limited to 'src/knowledge/knowledge_locks.c')
| -rw-r--r-- | src/knowledge/knowledge_locks.c | 23 |
1 files 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; } |


