Как использовать g_hash_table с openmp? Код выглядит примерно так:
dict = g_hash_table_new();
for (i = 0; i < N; i++) {
compute_A();
find_hash_of_A();
void *value = g_hash_table_lookup(dict, key);
if (!value) {
obj = (struct blah_blah *)value;
} else {
compute_obj
g_hash_table_insert(dict, key, obj);
}
do_something_with_obj
}
По идее только вставку в хэш нужно сделать критичной (critical), или что-либо ещё? Либо вообще ничего делать не нужно?
Это дело распараллелил, но вот иногда, нечасто, вылетает в этом цикле.
P.S. Прощу прощения за мой английский