Keeping a reference to RMessage for later Complete() invocation
my system is a heavily Active Object based communications API that is built on the Symbian client-server model. On the server side there are Active Objects for Accept()/RecvOneOrMore()/Send() calls of RSocket (one per each). Each of the objects store a reference to RMessage that represents the client's call. In their RunL() methods, the objects call the message's Complete() method to allow the client call return. The first Complete() finishes ok, but the rest complain that the message has already been completed (USER 70 panic or something). This implies that the same RMessage instance was passed for each of the calls.
So my question is: is it possible to store refences to RMessage objects and call their Complete() afterwards (after the original server session call has returned)? I figure a RMessage object should be returned to the object pool only after a call to it's Complete(), isn't this correct? Note that I have requested 8 message slots in CreateSession().