handle ECHILD (othwise we do run forever at 100%...)
get rid of switch, move to simple errno if checking