job.py: Replace message queue with pipe
A lightweight unidirectional pipe is sufficient to pass messages from the child job process to its parent.
This also avoids the need to access the private _reader
instance variable of multiprocessing.Queue
.
Benchmark
- Finished in: 29 mins, 38 secs
- Number of builders: [4, 8, 12]
- Target files: base-files/base-files.bst
- Number of runs: 3
- Number of warmups: 1
- Python versions: py37
action | python_version | commit | median time (secs) | mean time (secs) ± std |
---|---|---|---|---|
build - 4 | py37 | juerg/job-pipe - bb75662a | 65.58 | 65.61 ± 0.27 |
py37 | master - a8fb5cd7 | 73.22 | 73.00 ± 0.45 | |
build - 8 | py37 | juerg/job-pipe - bb75662a | 61.96 | 61.78 ± 0.76 |
py37 | master - a8fb5cd7 | 68.7 | 68.72 ± 0.08 | |
build - 12 | py37 | juerg/job-pipe - bb75662a | 61.1 | 61.23 ± 0.44 |
py37 | master - a8fb5cd7 | 68.69 | 68.74 ± 0.43 | |
show | py37 | juerg/job-pipe - bb75662a | 5.72 | 5.67 ± 0.11 |
py37 | master - a8fb5cd7 | 4.49 | 4.49 ± 0.04 | |
show - cached | py37 | juerg/job-pipe - bb75662a | 5.77 | 5.77 ± 0.03 |
py37 | master - a8fb5cd7 | 5.66 | 5.66 ± 0.03 |
Edited by Jürg Billeter