message: Added a lock protect enqueue_dispatchers.
diff: @@ -62,6 +62,7 @@ class GrpcEagerClient : public EagerClient {
  VLOG(1) << "Sending RPC to close remote eager context "
  << request->DebugString();
  + mutex_lock l(mu_);
  const auto& it = enqueue_dispatchers_.find(request->context_id());
  if (it != enqueue_dispatchers_.end()) {
  it->second.CancelCall();
  @@ -75,6 +76,7 @@ class GrpcEagerClient : public EagerClient {
  void StreamingEnqueueAsync(const EnqueueRequest* request,
  EnqueueResponse* response,
  StatusCallback done) override {
  + tf_shared_lock l(mu_);
  auto it = enqueue_dispatchers_.find(request->context_id());
  if (enqueue_dispatchers_.find(request->context_id()) ==
  enqueue_dispatchers_.end()) {
  @@ -92,8 +94,11 @@ class GrpcEagerClient : public EagerClient {
  private:
  ::grpc::GenericStub stub_;
  ::grpc::CompletionQueue* cq_;
  +
  + mutable mutex mu_;
  +
  std::unordered_map<uint64, StreamingRPCDispatcher<EnqueueResponse>>
  - enqueue_dispatchers_;
  + enqueue_dispatchers_ GUARDED_BY(mu_);
  };
  class GrpcEagerClientCache : public EagerClientCache {
  