Потоки Windows: как сообщить другим потокам, что мьютекс был освобожден? - PullRequest
0 голосов
/ 28 марта 2019

У меня есть четыре потока (в четырех ядрах) в Windows, все записи в один выходной буфер (в разных местах в буфере). В какой-то момент буфер заполняется и вызывается realloc, чтобы выделить больше памяти. Первый поток, который находит буфер заполненным, будет использовать мьютекс с WaitForSingleObject, чтобы получить эксклюзивный доступ и выделить больше памяти. Когда realloc закончится, поток вызовет ReleaseMutex.

Realloc возвращает новый дескриптор в выходной буфер и новый размер. Мне нужно, чтобы другие потоки сообщили о перераспределении, чтобы они могли получить новый указатель и размер, прежде чем продолжить.

Мой вопрос заключается в том, будут ли WaitForSingleObject или ReleaseMutex сообщать другим потокам о том, что произошло событие, чтобы они могли получить доступ к новому дескриптору и размеру? Я также устанавливаю объект события (с CreateEvent)? Если нет, то как бы я сообщил об этом событии?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...