[gentoo-portage-dev] [PATCH 3/5] EbuildFetcher: add _async_uri_map method (bug 653810)

2018-04-22 Thread Zac Medico
Add an _async_uri_map method to replace the synchronous _get_uri_map method. This will be used to prevent event loop recursion. Bug: https://bugs.gentoo.org/653810 --- pym/_emerge/EbuildFetcher.py | 27 --- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git

[gentoo-portage-dev] [PATCH 4/5] EbuildFetcher: use _async_uri_map in _start (bug 653810)

2018-04-22 Thread Zac Medico
Use _async_uri_map to avoid event loop recursion in _start. Bug: https://bugs.gentoo.org/653810 --- pym/_emerge/EbuildFetcher.py | 34 ++ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/pym/_emerge/EbuildFetcher.py b/pym/_emerge/EbuildFetcher.py

[gentoo-portage-dev] [PATCH 1/5] portdbapi: add async_fetch_map method (bug 653810)

2018-04-22 Thread Zac Medico
Add a portdbapi.async_fetch_map method which is identical to the existing portdbapi.getFetchMap method, but returns a future. This will be used by EbuildFetcher in order to avoid event loop recursion. Bug: https://bugs.gentoo.org/653810 --- pym/portage/dbapi/porttree.py | 75

[gentoo-portage-dev] [PATCH 5/5] EbuildFetcher: add async_already_fetched method (bug 653810)

2018-04-22 Thread Zac Medico
Add an async_already_fetched method to replace the synchronous already_fetched method, and use it to prevent event loop recursion. Bug: https://bugs.gentoo.org/653810 --- pym/_emerge/EbuildBuild.py | 8 +++- pym/_emerge/EbuildFetcher.py | 30 -- 2 files

[gentoo-portage-dev] [PATCH 0/5] EbuildFetcher._get_uri_map(): fix event loop recursion (bug 653810)

2018-04-22 Thread Zac Medico
Bug: https://bugs.gentoo.org/653810 Zac Medico (5): portdbapi: add async_fetch_map method (bug 653810) EbuildFetcher: inherit CompositeTask (bug 653810) EbuildFetcher: add _async_uri_map method (bug 653810) EbuildFetcher: use _async_uri_map in _start (bug 653810) EbuildFetcher: add

[gentoo-portage-dev] [PATCH 2/5] EbuildFetcher: inherit CompositeTask (bug 653810)

2018-04-22 Thread Zac Medico
Make EbuildFetcher inherit CompositeTask, and move remaining code to a _EbuildFetcherProcess class that still inherits ForkProcess. The CompositeTask framework will be used to split EbuildFetcher into subtasks, in order to prevent event loop recursion. Bug: https://bugs.gentoo.org/653810 ---

Re: [gentoo-portage-dev] [PATCH] BinpkgFetcher: use async lock (bug 614110)

2018-04-22 Thread Zac Medico
On 04/21/2018 03:07 PM, Brian Dolbec wrote: > On Sat, 21 Apr 2018 12:27:28 -0700 > Zac Medico wrote: > >> In order to avoid event loop recursion, convert the >> _BinpkgFetcherProcess.lock() method to an async_lock >> method for use by BinpkgFetcher. >> >> Bug: