keep asynchronous tasks on the intended thread pool - part I (executors)
Summary: Today, a continuation of coro or semifuture application handlers will always execute on NORMAL priority thread pool. This is because the effective executor for the task is the `ThreadManager::Impl` and its `add()` implementation does not preserver tasks' priority (which we map into thread pool). In this change, we wrap each priority/source in a separate keepalive. Generated code is routing either coro or semifuture onto the corresponding keepalive, which is preserved across tasks that do not explicitly specify a target executor. Reviewed By: andriigrynenko Differential Revision: D25105971 fbshipit-source-id: 9adaea654b3a099ff4de048026a67bdb588a3c2a
Showing
Please register or sign in to comment