summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'src/knowledge/knowledge_swt_tws_modifications.c')
-rw-r--r--src/knowledge/knowledge_swt_tws_modifications.c20
1 files changed, 20 insertions, 0 deletions
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;
}