管道打开nio
。我发现写入端点关闭,但读取端点打开。我检查了我的代码,两个端点总是一起关闭。那么,有没有可能自行关闭管道而不要求close
功能?管道关闭不需要关闭
ps。该代码是zero ice
的源代码。我在生产环境中发现了这个问题。代码路径为IceInternal.Selector
,管道为_fdIntrRead
和_fdIntrWrite
。我的ice
版本是3.3.1
。
我得到了答案。当前线程中断时,NIO
将关闭通道。这是一个ice
的bug,它在3.6
版本中修复。
最有可能你在某个地方关闭了它。我建议现在记录关闭管道作为日志消息的位置。 –
@PeterLawrey。该变量是私人的。所以它必须在单个文件中关闭。 – phyxnj
你使用试用资源吗? https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html这可以解释为什么它会自动关闭。 –