One further comment below regarding my earlier response.
Simon
Simon Nash wrote:
Raymond Feng wrote:
Thanks for the quick response. I agree with the points you are making.
A few more arguments:
(cut)
2) If the client side modifies the input data in a different thread
after issuing a call to the service, the PBV may get the wrong
snapshot of the parameters too.
>
That's one of the conditions that disqualifies the client from asserting
@AllowsPassByReference. See section 2.3.2.
My apologies for not picking up on your point about PBV (not PBR) here.
You're right that modification in this small time window is a problem for
PBV as well as PBR. The same applies to service-side modification of
returned results or exceptions on a separate thread before the PBV
snasphot is taken. These problems are extremely hard to diagnose
(I speak from experience many years ago of some all-night debugging
sessions just before shipping a product) and anyone who has been
through this never makes the same mistake again! So the possibility
of modification in this small time window is something that must be
avoided in all cases, irrespective of whether APBR is asserted.
Simon