RX0368

Domain: Execution

Error message

the fedex refused %s (%s)

In the message, %s marks a value that the engine fills in when it raises the error.

The story

A heap door was blocked by the fedex, the engine's delivery service. Here is the setting. Every time something reaches into the heap through a door, the fedex steps in with a bracket around that step. It asks one question: does the thread making the request own this being? Then it hands the step to the Court, which judges whether the step is lawful. If either one says no, the door does not run. And rush does not leave you with a bare no. It shows you the refusal: either the Court's own words, or the fact that ownership was missing. The first slot names the door, and the second slot holds the reason. Think of a mail carrier who will not open a mailbox that is not yours, and who tells you exactly why. In practice this happens when a thread tries to touch a heap or a being that belongs to another thread. The rule in rush is that each one writes only in its own heap, and crossing happens by message. Read the reason, then restructure the access as a message to the owner.

Text from the Rush engine's error catalogue.