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
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
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
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
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
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
---
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: