추적되지 않은 세션의 종료 실패

리스너만 닫아서는 이미 accept된 Socket의 read 블로킹을 해제할 수 없다.

  1. 연결 수락

    새 Socket이 만들어진다.

  2. 작업자 시작

    read에서 클라이언트 입력을 기다린다.

  3. 참조 소실

    서버가 세션 목록을 보관하지 않는다.

  4. 전체 종료

    listener만 닫혀 기존 세션이 남는다.

핵심: 세션 객체를 등록하고 shutdown이 각 close를 호출할 수 있게 한다.