Труба открыта nio
. Я обнаружил, что конечная точка записи закрыта, но конечная точка чтения открыта. Я проверил свой код, два конечных точки всегда закрываются вместе. Итак, есть ли возможность закрыть трубку без вызова close
?труба закрыта без разговора закрыта
пс. Код является исходным кодом zero ice
. Я нашел проблему в производственной среде. Путь кода IceInternal.Selector
, труба _fdIntrRead
и _fdIntrWrite
. Моя ice
версия 3.3.1
.
У меня есть ответ. NIO
будет закрывать канал, когда текущий поток прерывается. Это ошибка ice
, которая была исправлена в версии 3.6
.
Скорее всего, вы его где-то закрыли. Я предлагаю записать, где вы закрываете канал как сообщение журнала. –
@PeterLawrey. Переменная является частной. Поэтому он должен быть закрыт в одном файле. – phyxnj
Вы используете try-with-resouces? https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html Это может объяснить, почему он автоматически закрывается. –