gRPC-haskell/examples/echo
Joel Stanley 72160cea89 Fixes a concurrency bug wherein a thread (running beyond the maximum number of
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.
2016-07-10 17:15:57 -05:00
..
echo-client Fixes a concurrency bug wherein a thread (running beyond the maximum number of 2016-07-10 17:15:57 -05:00
echo-cpp ignore compiled cpp binaries (#31) 2016-06-22 10:41:38 -07:00
echo-python Various example/benchmarking code (#16) 2016-06-03 10:34:09 -07:00
echo-server Fixes a concurrency bug wherein a thread (running beyond the maximum number of 2016-07-10 17:15:57 -05:00
echo.proto Various example/benchmarking code (#16) 2016-06-03 10:34:09 -07:00