pthreads mutex: защитить член структуры - PullRequest
0 голосов
/ 18 июня 2019

Учитывая мьютекс, который защищает структуру, я бы хотел защитить член структуры mystruct с именем 'tasklist`.Будет ли достаточно использования мьютекса в следующем сценарии?

Код:

pthread_mutex_lock(&th_mutex);
addNewItem(&mystruct);
pthread_mutex_unlock(&th_mutex);

Условия:

  • Список tasklist имеет фиксированную длину n.
  • Если новый элементЧтобы добавить его в этот список, когда он уже заполнен, массив расширяется путем создания списка размером 2n, 3n, ... и выполнения memcpy со старым списком.
  • Все это делается в addNewItem.

Причина, по которой я спрашиваю, заключается в том, что у меня возникла проблема, когда кажется, что перебор элементов в списке задач указывает на блок памяти, который уже был освобожден.Я не уверен, является ли это местом старого списка, но поскольку исходная проблема требует много попыток воспроизвести, я в настоящее время много проверяю код.

...