Well, maybe I'm missing something, but sh_mq_create() will just overwrite the contents of the struct, so it doesn't care about sender/receiver: only sh_mq_set_sender/receiver() do.
if you create sh_mq from scratch, then you can reuse structure.
That was my plan. I'm now close to actually compiling this stuff, we'll see if it works in the simplest case at least. :-)