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