You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
7c88e4d013
This change blocks off 2 common scenarios where a race condition is upgraded to a hang, when the library could internally do better. * Since we don't know whether the receiver of a `reply_to` is expecting a raw or pickled message, and since in the case of a raw reply, there is no way to signal "dead" to the receiver, override the reply_to field to explicitly mark a message as dead using a special handle. This replaces the serialized _DEAD sentinel value with a slightly neater interface, in the form of the reserved IS_DEAD handle, and enables an important subsequent change: when a context cannot route a message, it can send a generic 'dead' reply back towards the message source, ensuring any sleeping thread is woken with ChannelError. The use of this field could potentially be extended later on if additional flags are needed, but for now this seems to suffice. * Teach Router._invoke() to reply with a dead message when it receives a message for an invalid local handle. * Teach Router._async_route() to reply with a dead message when it receives an unroutable message. |
7 years ago | |
---|---|---|
.. | ||
_static | ||
_templates | ||
images | ||
.gitignore | 7 years ago | |
Makefile | 7 years ago | |
ansible.rst | 7 years ago | |
api.rst | 7 years ago | |
compared.rst | ||
conf.py | 7 years ago | |
docs-requirements.txt | ||
examples.rst | ||
getting_started.rst | 7 years ago | |
howitworks.rst | 7 years ago | |
index.rst | ||
internals.rst | 7 years ago | |
pickle-substitutes.ods | ||
services.rst | 7 years ago | |
shame.rst | ||
signals.rst | 7 years ago | |
toc.rst |