let workers_waiting workers timeout =
let workers_fd_lst =
List.rev_map (fun worker -> worker.select_fd) workers
in
let workers_fd_waiting_lst, _, _ =
Unix.select workers_fd_lst [] [] timeout
in
List.filter
(fun workers -> List.memq workers.select_fd workers_fd_waiting_lst)
workers