this TextReader.Synchronized may not be useful here.  

1. The writing to stdout/err is done outside the synchronization.
2. Reading is single threaded.