on the wait_for_completion methods I'll change to using a Thread.join for all remaining threads (had it that way at one point prior to submitting, but opted for this approach as it wasn't actually handing over execution of the current thread to the joined thread).  For the wait_for_available_thread method in example_thead_runner.rb though it needs to wait for an available, open thread and cannot predict which thread will complete first so it simply needs to poll).  That said though I can reduce the sleep to 0.1 seconds to minimize overhead (though this sleep happens in a separate thread as well since it is all wrapped by the example_group thread(s)).  

Hopefully this is acceptable :smile: