Здравствуйте, я создал хеш-таблицу на C. Я достаточно тестировал ее, чтобы убедиться, что она работает. Дело в том, что структура данных будет динамически связана с кодом, который я не писал, и, возможно, использует потоки. Поэтому мне нужно синхронизировать его, чтобы он работал корректно для теоретически любого количества потоков, одновременно изменяющих / читающих его. Изучив pthread mutex API, я сделал следующее
Объявлена статическая глобальная переменная:
static pthread_mutex_t lock;
В HashTable_init (который всегда вызывается перед использованием хеш-таблицы) я запускаю его:
pthread_mutex_init(&lock,NULL);
Для каждой функции, которая читает / записывает структуру, я ставлю блокировку при запуске:
pthread_mutex_lock(&lock);
и разблокировать в конце:
pthread_muter_unlock(&lock);
Этого достаточно, чтобы синхронизировать структуру данных? (так как на данный момент моя программа зависает).
Спасибо