Fixes for asyncio loops were we don't follow the documentation

Description

This modifies the scheduler and job implementation to spawn new processes and handle callbacks according to the documentation

Benchmarks

We can see that the performances are not worse, even slightly better in some cases.

  • Finished in: 102 mins, 46 secs
  • Number of builders: [4, 8, 12, 24]
  • Target files: base-files/base-files.bst
  • Number of runs: 4
  • Number of warmups: 2
  • Python versions: py37
action python_version commit median time (secs) mean time (secs) ± std
build - 12 py37 bschubert/stricter-asyncio-handling - af8f1c3d 119.805 119.66 ± 0.55
py37 master - 454ed339 121.79 121.81 ± 0.28
build - 24 py37 bschubert/stricter-asyncio-handling - af8f1c3d 118.555 118.48 ± 0.19
py37 master - 454ed339 120.215 120.25 ± 0.39
build - 4 py37 bschubert/stricter-asyncio-handling - af8f1c3d 120.91 121.01 ± 0.62
py37 master - 454ed339 122.175 122.11 ± 0.42
build - 8 py37 bschubert/stricter-asyncio-handling - af8f1c3d 122.375 122.23 ± 0.84
py37 master - 454ed339 125.105 125.01 ± 0.31
show py37 bschubert/stricter-asyncio-handling - af8f1c3d 8.03 8.01 ± 0.15
py37 master - 454ed339 4.875 4.87 ± 0.03
show - cached py37 bschubert/stricter-asyncio-handling - af8f1c3d 8.195 8.14 ± 0.20
py37 master - 454ed339 8.18 8.14 ± 0.18

Edited by Benjamin Schubert

Merge request reports

Loading