When a valid response 22 has been received from P, then Rsp.received=true and Rsp.retval=22. However, when P is suspected before the call returns, then Rsp.retval=null, Rsp.suspected=true and Rsp.received=false
However, maybe we don't care that P was suspected after we received a valid response from it !
Therefore, we should leave retval=22 and received=true.
If we get retval=22, received=true and suspected=true, then we know that we got a valid response from P, and that P was suspected later, but before the call completed.