I am working on a multithreaded application that reads data from a number of sources, does some calculations and writes results to several outputs. I do have several reader