D1568: lfs: using workers in lfs prefetch
wlis (Wojciech Lis)
phabricator at mercurial-scm.org
Mon Dec 11 21:55:47 EST 2017
wlis added a comment.
@mharbison72 I am not sure if these tests are able to satisfy conditions to actually multithread. But you are right it there is an issue we can force 1 worker.
The workers on posix are implemented by forking and the only way of communication is through pipes created by worker.py code. Once forked they only communicate every some # of tasks (file fetches in this case) has been finished by the worker (I think # ~ 100 but not sure). We would have to change POSIX behaviour to allow reporting smaller pieces of progress through pipe (potentially 0 tasks finished). This would need changes in bunch of layers (worker, merge, blobstore) instead the current simple use of progress(...) function.
It is possible to implement that communication, but it is significant amount of work and testing.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D1568
To: wlis, #hg-reviewers, quark, mharbison72
Cc: mharbison72, quark, mercurial-devel
More information about the Mercurial-devel
mailing list