sapling/changesets
Simon Farnsworth 7fd5851f1e Use blocking in asynchronize as well as spawning a task
Summary:
`asynchronize` currently does not warn the event loop that it's
running blocking code, so we can end up starving the thread pool of threads.

We can't use `blocking` directly, because it won't spawn a synchronous task
onto a fresh Tokio task, so your "parallel" futures end up running in series.
Instead, use it inside `asynchronize` so that we can pick up extra threads in
the thread pool as and when we need them due to heavy load.

While in here, fix up `asynchronize` to only work on synchronous tasks and
push the boxing out one layer. Filenodes needs a specific change that's
worth extra eyes.

Reviewed By: jsgf

Differential Revision: D9631141

fbshipit-source-id: 06f79c4cb697288d3fadc96448a9173e38df425f
2018-09-05 12:23:49 -07:00
..
schemas mononoke: use ChangesetId in Changesets 2018-08-06 10:36:43 -07:00
src Use blocking in asynchronize as well as spawning a task 2018-09-05 12:23:49 -07:00
test mononoke: use ChangesetId in Changesets 2018-08-06 10:36:43 -07:00
Cargo.toml Use Abomonation and cachelib to replace Asyncmemo 2018-08-07 13:37:09 -07:00