accept IOException 판정

listener 상태를 확인해 예상된 종료와 실제 장애를 구분한다.

1

ACCEPTING

listener 열림

새 연결을 기다린다.

2

CLOSE REQUESTED

다른 스레드가 close

블로킹이 해제된다.

3

IOException

accept 반환 실패

isClosed를 확인한다.

4

STOPPED 또는 FAILED

닫힘이면 종료

열림이면 장애 전파

핵심: 모든 accept IOException을 정상 종료로 삼키면 리스너 장애를 놓친다.