How is this working w/out non-blocking reads?  I would think read() would block indefinitely until 4096 bytes arrive OR until EOF is received.