sapling/eden/scm
Arun Kulshreshtha ca8200e9df http-client: make send_async return a Vec of Futures instead of a Stream
Summary:
When the `send_async` method is used to dispatch multiple concurrent requests, the method needs to return an `AsyncResponse` for each request. Since `AsyncResponse`'s constructor is itself `async` (it waits for all of the headers to be received), internally the method ends up with a collection of `AsyncResponse` futures.

Previously, in an attempt to simplify the API, the method would insert all of these futures into a `FuturesUnordered`, thereby conceptually returning a `Stream` of `AsyncResponses`. Unfortunately, this API ends up making it harder to consume the resulting `AsyncResponses` concurrently, as one might want to do when streaming lots of data over several concurrent requests.

This diff changes the API to just insert the `AsyncResponse` futures into a `Vec` to allow the caller to use them as desired. To maintain compatibility with the old behavior for the sake of this diff, the one current callsite has been updated to just dump the returned `Vec` into a `FuturesUnordered`. This will be changed later in the stack.

Reviewed By: quark-zju

Differential Revision: D29204195

fbshipit-source-id: ecee8cff430badd8213c2efef62fc68fbd91fde9
2021-06-18 15:23:25 -07:00
..
contrib setup: check Python.h existence 2021-06-16 15:08:52 -07:00
distutils_rust distutils_rust: prefer lld as the linker 2021-04-27 10:30:48 -07:00
doc py3: fix test-help.t 2020-04-09 18:25:54 -07:00
edenscm helptext: remove reference of color.pagermode 2021-06-17 16:45:21 -07:00
edenscmnative async: replace block_on_future with block_on 2021-06-15 14:08:13 -07:00
exec lib: remove #![deny(warnings)] 2021-04-21 12:24:47 -07:00
hgcache_size_logger add hgcache size logger 2020-08-26 04:24:50 -07:00
i18n apply pyfmt with usort to opted-in sources 2020-11-10 21:25:54 -08:00
lib http-client: make send_async return a Vec of Futures instead of a Stream 2021-06-18 15:23:25 -07:00
newdoc notes: add 2019-10 Manifests, Past and Future 2021-03-04 08:52:27 -08:00
pystubs eden: make the EdenFS import helper use EdenAPI's /trees endpoint instead of /complete_trees 2021-02-22 14:23:40 -08:00
slides apply black 20.8b1 formatting update 2020-10-14 20:21:52 -07:00
tests commitcloud: remove syncing of obsmarkers 2021-06-17 06:09:02 -07:00
.editorconfig Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
.flake8 debugrebuildchangelog: support rebuild with lazy segmented changelog 2021-05-26 19:00:01 -07:00
.gitignore gitignore: track Makefile under scm 2021-03-04 08:52:27 -08:00
COPYING Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
gen_version.py version: a Rust crate providing version information 2020-05-18 09:00:40 -07:00
hgeditor Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
Makefile py3: remove py3 options and py2 rpm spec 2021-06-15 14:46:42 -07:00
README.rst Move fb-mercurial sources into an eden/scm subdirectory. 2019-11-13 16:04:48 -08:00
setup.py setup: downgrade IPython to 5.8 2021-06-16 11:51:11 -07:00

Mercurial
=========

Mercurial is a fast, easy to use, distributed revision control tool
for software developers.

Basic install::

 $ make            # see install targets
 $ make install    # do a system-wide install
 $ hg debuginstall # sanity-check setup
 $ hg              # see help

Running without installing::

 $ make local      # build for inplace usage
 $ ./hg --version  # should show the latest version

See https://mercurial-scm.org/ for detailed installation
instructions, platform-specific notes, and Mercurial user information.