remove unused variable
exit (instead of using the defaults) on too many args
don't try to join/cancel threads that never existed.