RX0321

Domínio: Execução

Mensagem de erro

message[] para %s: a carta não pôde ser escrita no heap do próprio remetente (%s)

Na mensagem, %s marca um valor que o motor preenche quando levanta o erro.

A história

Você mandou uma mensagem e o motor disse que a carta não pôde ser escrita no heap de quem manda. Veja a regra por trás. No rush, cada um escreve e lê apenas do próprio heap. Quando você manda uma mensagem, primeiro escreve a carta na sua própria memória, e depois pede ao fedex: leve isto ao destinatário. Só então a carta atravessa. Mas e se a sua memória não deixar a carta nascer? Pode ser que a sua arena tenha se esgotado, ou que o gtr que escreve já não esteja vivo. Nesse caso não há carta nenhuma para o fedex levar. E o motor não diz enviado, em silêncio, para você acreditar que deu certo. Ele recusa, e repete as palavras do próprio heap. Um exemplo: um gtr cuja arena está cheia tenta mandar uma mensagem grande. A correção é liberar memória, ou mandar uma mensagem menor. A mensagem traz o endereço de destino e o detalhe do heap. Leia o detalhe.

Texto do catálogo de erros do motor do Rush.