core :: Task :: after_main
main
ThreadPool
# Additional work executed after `main` from a `ThreadPool` private fun after_main do end
redef fun after_main do # TODO move this at the end of main so all `JoinTask` can be joined # no matter what calls `main`. mutex.lock is_done = true var tcond = cond if tcond != null then tcond.signal mutex.unlock end