Why have your own TPE, and why just a single thread? If something performs blocking operations then you should use the blocking-process-io-dispatcher...