forkIO package:threads-extras

Same as Control.Concurrent.Thread.Group.forkIO but waits there are less then the max size number of threads.
Same as Control.Concurrent.Thread.Group.forkIOWithUnmask but waits there are less then the max size number of threads.