From 8d5c996aef28fae9f848e1fab419b4d2821e8862 Mon Sep 17 00:00:00 2001 From: Nathanael Sensfelder Date: Thu, 29 Jun 2017 15:20:24 +0200 Subject: First shot at finer mutexes. --- src/knowledge/knowledge_swt_tws_modifications.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'src/knowledge/knowledge_swt_tws_modifications.c') diff --git a/src/knowledge/knowledge_swt_tws_modifications.c b/src/knowledge/knowledge_swt_tws_modifications.c index 2acd093..cc8a938 100644 --- a/src/knowledge/knowledge_swt_tws_modifications.c +++ b/src/knowledge/knowledge_swt_tws_modifications.c @@ -163,6 +163,8 @@ int JH_knowledge_strengthen_swt { JH_index s_index, t_index; + JH_knowledge_writelock_word(k, word_id, io); + if ( JH_knowledge_find_markov_sequence @@ -184,6 +186,8 @@ int JH_knowledge_strengthen_swt ) < 0 ) { + JH_knowledge_writeunlock_word(k, word_id, io); + return -1; } } @@ -210,6 +214,8 @@ int JH_knowledge_strengthen_swt ) < 0 ) { + JH_knowledge_writeunlock_word(k, word_id, io); + return -1; } } @@ -233,12 +239,16 @@ int JH_knowledge_strengthen_swt "[W] Unable to strengthen SWT link: link is already at max strength." ); + JH_knowledge_writeunlock_word(k, word_id, io); + return 1; } k->words[word_id].swt.sequences_ref[s_index].occurrences += 1; k->words[word_id].swt.sequences_ref[s_index].targets[t_index].occurrences += 1; + JH_knowledge_writeunlock_word(k, word_id, io); + return 0; } @@ -253,6 +263,8 @@ int JH_knowledge_strengthen_tws { JH_index s_index, t_index; + JH_knowledge_writelock_word(k, word_id, io); + if ( JH_knowledge_find_markov_sequence @@ -274,6 +286,8 @@ int JH_knowledge_strengthen_tws ) < 0 ) { + JH_knowledge_writeunlock_word(k, word_id, io); + return -1; } } @@ -300,6 +314,8 @@ int JH_knowledge_strengthen_tws ) < 0 ) { + JH_knowledge_writeunlock_word(k, word_id, io); + return -1; } } @@ -323,11 +339,15 @@ int JH_knowledge_strengthen_tws "[E] Unable to strengthen TWS link: link is already at max strength." ); + JH_knowledge_writeunlock_word(k, word_id, io); + return -1; } k->words[word_id].tws.sequences_ref[s_index].occurrences += 1; k->words[word_id].tws.sequences_ref[s_index].targets[t_index].occurrences += 1; + JH_knowledge_writeunlock_word(k, word_id, io); + return 0; } -- cgit v1.2.3-70-g09d2