forked from goodboy/tractor
1
0
Fork 0
'structured concurrent `trio`-"actors"'
Go to file
Tyler Goodlet 49573c9a03 More fixes to do cancellation correctly
Here is a bunch of code tightening to make sure cancellation works even
if recently spawned actors haven't fully started up and the parent is
cancelled.

The fixes include:
- passing the arbiter socket address to each actor
- ensure all spawned actors respect the spawner's log level
- handle process versus final `portal.result()` teardown in multiple
  tasks such that if a proc dies before shipping a result we don't wait
- more detailed debug logging in teardown code paths
- don't store peer connected events in the same `dict` as the peer channels
- if necessary fake main task results on peer channel disconnect
- warn when a `trio.Cancelled` is what causes a nursery to bail
  otherwise error
- store the subactor portal in the nursery for teardown purposes
- add dedicated `Portal.cancel_actor()` which acts as a "hard cancel"
  and never blocks (indefinitely)
- add `Arbiter.unregister_actor()` it's more explicit what's being
  requested
2018-07-11 22:20:13 -04:00
tests Add a "show me the code" test from the readme 2018-07-11 22:20:13 -04:00
tractor More fixes to do cancellation correctly 2018-07-11 22:20:13 -04:00
.gitignore Initial commit 2018-07-05 16:01:15 -04:00
LICENSE Initial commit 2018-07-05 16:01:15 -04:00
README.md Initial commit 2018-07-05 16:01:15 -04:00
requirements-test.txt Add trio plugin for testing 2018-07-11 22:20:13 -04:00
setup.py Add trio framework classifier 2018-07-10 17:27:47 -04:00

README.md

tractor

async, multicore, distributed Python built on trio