clean up, don't rely on implementation details

- it should be sufficient to wait for the next readable event
clean up, clearly mark private method: flush() -> __flush()