mirror of https://github.com/grpc/grpc.git
The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)
https://grpc.io/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
17 lines
927 B
17 lines
927 B
8 years ago
|
Ordering Status and Reads in the gRPC API
|
||
|
-----------------------------------------
|
||
|
|
||
|
Rules for implementors:
|
||
|
1. Reads and Writes Must not succeed after Status has been delivered.
|
||
|
2. OK Status is only delivered after all buffered messages are read.
|
||
|
3. Reads May continue to succeed after a failing write.
|
||
|
However, once a write fails, all subsequent writes Must fail,
|
||
|
and similarly, once a read fails, all subsequent reads Must fail.
|
||
|
4. When an error status is known to the library, if the user asks for status,
|
||
|
the library Should discard messages received in the library but not delivered
|
||
|
to the user and then deliver the status. If the user does not ask for status
|
||
|
but continues reading, the library Should deliver buffered messages before
|
||
|
delivering status. The library MAY choose to implement the stricter version
|
||
|
where errors cause all buffered messages to be dropped, but this is not a
|
||
|
requirement.
|