forked from goodboy/tractor
Add `Portal.cancel_called`
parent
66137030d9
commit
8e21bb046e
|
@ -84,6 +84,15 @@ class Portal:
|
||||||
] = None
|
] = None
|
||||||
self._streams: Set[ReceiveMsgStream] = set()
|
self._streams: Set[ReceiveMsgStream] = set()
|
||||||
self.actor = current_actor()
|
self.actor = current_actor()
|
||||||
|
self._cancel_called: bool = False
|
||||||
|
|
||||||
|
@property
|
||||||
|
def cancel_called(self) -> bool:
|
||||||
|
'''
|
||||||
|
Same principle as ``trio.CancelScope.cancel_called``.
|
||||||
|
|
||||||
|
'''
|
||||||
|
return self._cancel_called
|
||||||
|
|
||||||
async def _submit(
|
async def _submit(
|
||||||
self,
|
self,
|
||||||
|
@ -197,9 +206,16 @@ class Portal:
|
||||||
# we'll need to .aclose all those channels here
|
# we'll need to .aclose all those channels here
|
||||||
await self._cancel_streams()
|
await self._cancel_streams()
|
||||||
|
|
||||||
async def cancel_actor(self):
|
async def cancel_actor(self) -> None:
|
||||||
"""Cancel the actor on the other end of this portal.
|
'''
|
||||||
"""
|
Cancel the actor on the other end of this portal.
|
||||||
|
|
||||||
|
That means cancelling the "actor runtime" not just any one
|
||||||
|
task that's running there.
|
||||||
|
|
||||||
|
'''
|
||||||
|
self._cancel_called = True
|
||||||
|
|
||||||
if not self.channel.connected():
|
if not self.channel.connected():
|
||||||
log.cancel("This portal is already closed can't cancel")
|
log.cancel("This portal is already closed can't cancel")
|
||||||
return False
|
return False
|
||||||
|
@ -207,8 +223,8 @@ class Portal:
|
||||||
await self._cancel_streams()
|
await self._cancel_streams()
|
||||||
|
|
||||||
log.cancel(
|
log.cancel(
|
||||||
f"Sending actor cancel request to {self.channel.uid} on "
|
f"Sending runtime cancel msg to {self.channel.uid} @ "
|
||||||
f"{self.channel}")
|
f"{self.channel.raddr}")
|
||||||
try:
|
try:
|
||||||
# send cancel cmd - might not get response
|
# send cancel cmd - might not get response
|
||||||
# XXX: sure would be nice to make this work with a proper shield
|
# XXX: sure would be nice to make this work with a proper shield
|
||||||
|
|
Loading…
Reference in New Issue