管道打開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這可以解釋爲什麼它會自動關閉。 –