pluckers) would register a CQ notification via
grpc_server_request_registered_call prior to obtaining pluck permission, block
on acquiring such permission, and thus miss notification of the server call.
The bug can could be witnessed with particular interleavings by ensuring that
GRPC_MAX_COMPLETION_QUEUE_PLUCKERS server threads are blocked on their own
server call notifications, and then using the
(GRPC_MAX_COMPLETION_QUEUE_PLUCKERS+1)th server thread to attempt to block on a
notification for an additional server call.
In order to fix this, we simply extended the pluck permission held window for
serverRequestCall, and created a variant of pluck (called pluck') which assumes
permission to pluck is already held by the calling thread.
* get_peer: fix todo
* add documentation for server registered call function
* test roundtrip conversion of larger bytestrings (32 mb)
* Add channel args interface: currently supports user agents and compression.
* fix build failure after stack clean
* Remove explicit host:port parameter from clientRequest
* Save ClientConfig in Client ADT; derive host:port string as needed
* Add Port newtype and endpoint string constructor fn
* Introduce Endpoint newtype for host:port strings; derive them as needed; misc cleanup
* Clean up echo client
* initial echo client/server examples
* registered and unregistered versions of the example client
* ignore pyc files
* cpp echo code, flag to build examples
* threaded server example