don't return EPIPE received on the input channel; remove unreachable condition in internal read() routine; increment the stack level before calling the error handler so it doesn't have to adjust for its own activation record when throwing with error()