since the threads loop forever, parent can exit