Reads an int number (suspending if not enough bytes available) or fails if channel has been closed and not enough bytes.