gpt4 book ai didi

c++ - 有什么方法可以让 Enter/LeaveCriticalSection 留下句柄

转载 作者:太空宇宙 更新时间:2023-11-04 15:10:49 25 4
gpt4 key购买 nike

我的程序中有以下代码:

  EnterCriticalSection(&critsec[x]);
// stuff
LeaveCriticalSection(&critsec[x]);

它在 99.999% 的时间里工作正常,但偶尔似乎会遗漏一个句柄。现在我已经做了一些显而易见的事情,比如确保 x 在输入之间没有改变值,并确保“//stuff”中没有任何“return”或“break”,但我想知道是否有什么东西否则会导致输入/离开对留下句柄。可能内存不足或溢出操作系统中的某些计数器或其他任何东西。

编辑:我是 C++ 的新手,该程序最近才从 C 转换而来。整个程序的任何地方都没有异常。

最佳答案

如果您没有显式删除临界区,并且临界区上曾经存在争用,您将泄漏句柄。当两个或多个线程在尝试进入单个关键部分时发生重叠时,Windows 上关键部分的一些实现会分配一个信号量。

这不是泄漏。或者更确切地说,如果“泄漏”句柄的数量小于或等于您正在使用的全局关键部分的数量,则它不是泄漏。

关于c++ - 有什么方法可以让 Enter/LeaveCriticalSection 留下句柄,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1763322/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com