2009/4/21 Bakul Shah <bakul+pl...@bitblocks.com>: > In the pipelined case, from a server's perspective, client's > requests just get to it faster (and may already be waiting!). > It doesn't have to do anything special. What am I missing?
you're missing the fact that without the sequence operator, the second request can arrive before the first request has completed, thus potentially making it invalid (e.g. it's invalid to read from a file that hasn't been opened). also, in many current server implementations, each request gets serviced in its own process - there's no guarantee that replies will come back in the same order as the requests, even if all the requests are serviced immediately. it would be possible to do a similar kind of thing by giving the same tag to the operations in a sequence, but i'm quite attached to the fact that a) the operations are otherwise identical to operations in the original protocol b) a small bit of extra redundancy is useful for debugging. c) you can get Tendsequence (which is necessary, i now realise) by flushing the Tsequence with a request within the sequence itself.