Merge github.com:grpc/grpc into you-complete-me

pull/1731/head
Craig Tiller 10 years ago
commit 640dfaf2ee
  1. 6
      src/node/interop/interop_client.js
  2. 4
      src/node/src/client.js
  3. 15
      test/cpp/qps/server_async.cc

@ -154,13 +154,15 @@ function serverStreaming(client, done) {
arg.response_parameters[resp_index].size);
resp_index += 1;
});
call.on('status', function(status) {
assert.strictEqual(status.code, grpc.status.OK);
call.on('end', function() {
assert.strictEqual(resp_index, 4);
if (done) {
done();
}
});
call.on('status', function(status) {
assert.strictEqual(status.code, grpc.status.OK);
});
}
/**

@ -125,10 +125,6 @@ function _read(size) {
self.finished = true;
return;
}
if (self.finished) {
self.push(null);
return;
}
var data = event.read;
if (self.push(self.deserialize(data)) && data !== null) {
var read_batch = {};

@ -99,12 +99,15 @@ class AsyncQpsServerTest : public Server {
while (srv_cq_->Next(&got_tag, &ok)) {
ServerRpcContext *ctx = detag(got_tag);
// The tag is a pointer to an RPC context to invoke
if (ctx->RunNextState(ok) == false) {
bool still_going = ctx->RunNextState(ok);
std::lock_guard<std::mutex> g(shutdown_mutex_);
if (!shutdown_) {
// this RPC context is done, so refresh it
std::lock_guard<std::mutex> g(shutdown_mutex_);
if (!shutdown_) {
if (!still_going) {
ctx->Reset();
}
} else {
return;
}
}
return;
@ -116,11 +119,15 @@ class AsyncQpsServerTest : public Server {
{
std::lock_guard<std::mutex> g(shutdown_mutex_);
shutdown_ = true;
srv_cq_->Shutdown();
}
for (auto thr = threads_.begin(); thr != threads_.end(); thr++) {
thr->join();
}
srv_cq_->Shutdown();
bool ok;
void *got_tag;
while (srv_cq_->Next(&got_tag, &ok))
;
while (!contexts_.empty()) {
delete contexts_.front();
contexts_.pop_front();

Loading…
Cancel
Save