| summaryrefslogtreecommitdiff | 
diff options
| author | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-06-29 17:24:21 +0200 | 
|---|---|---|
| committer | Nathanael Sensfelder <SpamShield0@MultiAgentSystems.org> | 2017-06-29 17:24:21 +0200 | 
| commit | 877c0690c62fb038de3f47a3d7f41bb32960ed33 (patch) | |
| tree | 04c6cf4ad01d58b147625e2057f37673a7b9489d /src | |
| parent | 8d5c996aef28fae9f848e1fab419b4d2821e8862 (diff) | |
Fixes wrong order in lock release.finer_mutexes
Diffstat (limited to 'src')
| -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;     } | 


