yuja added a comment.
> for rfd, wfd in pipes:
> os.close(wfd)
>
> - selector.register(os.fdopen(rfd, 'rb', 0), selectors.EVENT_READ)
>
> +selector.register(os.fdopen(rfd, 'rb'), selectors.EVENT_READ)
Using buffered I/O can cause a deadlock (until the worker
> for rfd, wfd in pipes:
> os.close(wfd)
> -selector.register(os.fdopen(rfd, 'rb', 0), selectors.EVENT_READ)
> +selector.register(os.fdopen(rfd, 'rb'), selectors.EVENT_READ)
Using buffered I/O can cause a deadlock (until the worker process exits.)
The master process
Closed by commit rHGcb52e619c99e: worker: Use buffered input from the pickle
stream (authored by heftig).
This revision was automatically updated to reflect the committed changes.
This revision was not accepted when it landed; it landed in state "Needs
Review".
REPOSITORY
rHG Mercurial
heftig created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
On Python 3, "pickle.load" will raise an exception ("_pickle.UnpicklingError:
pickle data was truncated") when it gets a short read, i.e. it receives fewer
bytes