(import-from concurrent.futures ThreadPoolExecutor as-completed) (import-from random randint) (import-from sh sleep) (defn task-to-do [] (sleep (randint 1 5))) (with-as (ThreadPoolExecutor 10) executor (setf jobs (list-comp (.submit executor task-to-do) (x (range 0 10)))) (for (future (as-completed jobs)) (.result future)))