ThreadPoolExecutor and its children CPUThreadPoolExecutor and IOThreadPoolExecutor
Summary:
Spun off from https://phabricator.fb.com/
D1534506 as this seemed different enough for a new diff
Similar to previous diff but attempts to reuse a common thread management process between cpu and io bound thread pools. Also sets the stage for other common functionality, e.g. stats, monitoring, timeouts, and so on
Here is some output from the queue benchmark in common/concurrent with both of these pools added (changes to BM not in this diff): https://phabricator.fb.com/P16308560
Test Plan: added a unit test, ran benchmark
Reviewed By: davejwatson@fb.com
Subscribers: fugalh, njormrod, bmatheny
FB internal diff:
D1555443
Tasks:
5002392,
5002425