공유 deadline으로 세 worker를 회수하는 계산

각 작업마다 새 timeout을 주지 않고 남은 전체 예산을 전달한다.

  1. deadline 생성

    now와 total budget을 더한다

    once
  2. remaining 계산

    deadline에서 현재 시각을 뺀다

    per worker
  3. timed join

    남은 millis만 기다린다

    bounded
  4. cleanup

    alive worker를 interrupt하고 회수한다

    no leak

핵심: 나노초를 밀리초로 내릴 때 0이 무기한 join이 되지 않게 최소값을 처리한다.