|
|
1
0
结构应该有一个连接句柄(SOCKET)、一个引用计数和一个标志,指示应该尽快关闭连接并删除对象。不管容器是什么,它都必须有用于搜索/插入/删除和GetReference/Release逻辑的同步机制(关键部分)。如果引发关闭标志,则GetReference函数应返回NULL。您可能需要更多的GetReference,这取决于搜索条件(并且connection对象应该具有所有那些可以帮助在容器中找到它的值)。GET引用函数中的一个可以在容器中不存在的情况下创建新对象。 释放函数应该关闭连接并从容器中删除对象,如果关闭标志被提升并且引用计数被降为零。但是释放 关闭关键部分内的连接,因为这可能是一个耗时的操作(取决于 graceful shutdown and lingering option ). Release应该输入CS,减少引用计数,如果为零,则离开CS,关闭连接,再次输入CS,然后从容器中移除对象并将其删除。由于关闭标志被提升,引用计数将不会在两个CS之间提升。 |
|
|
deen · 从递归方法调用另一个类的方法:Java 8 年前 |
|
|
nd97 · 读取Bash中可能删除的文件 8 年前 |
|
|
je123 · $.post()可能的竞争条件;重定向问题 8 年前 |
|
|
zackster7171 · C程序在GDB中工作,但不正常 8 年前 |
|
|
Di Wang · 单处理器环境可以防止竞争条件吗? 8 年前 |
|
|
yun · USB音频缓冲区欠载 8 年前 |