io.Copy should stop if either of the two conditions hold:
* The nearest read from `src` hits the EOF condition or other error.
* The nearest write to `dst` hits the error.
Hence it might be an error in the implementation of myWriter since it
might not signal io.ErrShortWrite (or io.ErrClosedPipe) to the client
when a write is attempted to it after it was closed.
Another case I might fathom is the case of your writer being os.Stdout
or os.Stderr, and the possible resulting interaction with the EPIPE
errors and the SIGPIPE signal.
I'd say we need more details including your OS and Go version.