|
|
1
4
也许你应该用别的东西来唤醒选择。也许是烟斗之类的。 |
|
2
4
UDP是一种无连接协议。因为没有连接,没有一个可以断开,所以消费者不知道制作人再也不会发送了。 您可以让生产者发送一条“流结束”消息,并让消费者在收到该消息后终止。 |
|
|
3
3
您能否向线程发送一个信号(例如USR2),该信号将导致select()返回EINTR? 这将消除等待多个文件描述符的需要,而且似乎比使用管道杀死它要干净得多。 |
|
|
4
2
我认为最明显的解决办法是关闭不被视为例外情况。我认为问题的根源在于,你并没有真正接受
|
|
|
5
2
我想说的是,不同之处在于recvfrom正在积极尝试从单个套接字读取消息,其中select正在等待消息到达,可能在多个句柄上,而不一定是套接字句柄。 |
|
|
6
0
你的代码从根本上被破坏了。这种错误的变体是常见的,并且在过去已经导致了严重的错误,具有巨大的安全隐患。以下是您缺少的内容:
当您关闭套接字时,根本无法知道另一个线程是否被阻塞
当另一个线程正在或可能正在使用某个资源时,不得尝试释放该资源。 |
|
|
MaPo · Linux,设置锁定ICMP_过滤器选项 1 年前 |
|
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 1 年前 |
|
|
Bobby · 复合字面值总是左值吗? 1 年前 |
|
9-Pin · C: 嵌套结构的堆栈内存分配 1 年前 |