what happens when atexit is used via daemon threads instead of the main program one?