I did find a reference that suggested it was only undefined in the sense that you may miss a kick.  I agree that I should just add a pthread_mutex_lock call here as there's no real downside and it means the code is strictly in line with the API specs.  It still won't remove the chance that the second of two SIGHUPs could be missed.