我在Windows中有四个线程(在四个内核中),所有线程都写入一个输出缓冲区(在缓冲区中的不同位置)。在某个时候,缓冲区将填满,并调用realloc以分配更多的内存。找到缓冲区已满的第一个线程将使用带有WaitForSingleObject的互斥锁来获得互斥访问并分配更多的内存。重新分配完成后,线程将调用ReleaseMutex。
Realloc将一个新的句柄返回到输出缓冲区,并返回一个新的大小。我需要通知其他线程已发生重新分配,以便它们可以在继续操作之前获取新的指针和大小。
我的问题是,WaitForSingleObject或ReleaseMutex是否会向其他线程发出该事件已发生的信号,以便它们可以访问新的句柄和大小?是否还要设置事件对象(使用CreateEvent)?如果没有,我将如何表示该事件?