This looks like a weird place to store rdata, is there definitely a different `BasicProxy` for each incoming message?  If not, are there races where we set this in one thread and then overwrite it in another?