diff options
author | Craig Tiller <craig.tiller@gmail.com> | 2016-01-27 08:13:33 +0000 |
---|---|---|
committer | Craig Tiller <craig.tiller@gmail.com> | 2016-01-27 08:13:33 +0000 |
commit | cde1ee1440c72fc50607bb22421e283dd145e6b6 (patch) | |
tree | fafd2c4d95e9a1db2ff47538d7a600d3d87eebc4 /src | |
parent | 338576096f951821e9610525a25235152fcf9011 (diff) | |
parent | 4f3840dc06676df5eed09b58828393fe85a599c2 (diff) |
Merge github.com:grpc/grpc into twah
Diffstat (limited to 'src')
-rw-r--r-- | src/core/surface/init.c | 6 | ||||
-rw-r--r-- | src/cpp/client/client_context.cc | 3 | ||||
-rw-r--r-- | src/cpp/server/server.cc | 19 | ||||
-rw-r--r-- | src/node/index.js | 4 | ||||
-rw-r--r-- | src/node/src/client.js | 4 | ||||
-rw-r--r-- | src/node/src/credentials.js | 4 | ||||
-rw-r--r-- | src/node/src/grpc_extension.js | 40 | ||||
-rw-r--r-- | src/node/src/metadata.js | 2 | ||||
-rw-r--r-- | src/node/src/server.js | 4 | ||||
-rw-r--r-- | src/node/test/call_test.js | 4 | ||||
-rw-r--r-- | src/node/test/channel_test.js | 4 | ||||
-rw-r--r-- | src/node/test/constant_test.js | 4 | ||||
-rw-r--r-- | src/node/test/end_to_end_test.js | 4 | ||||
-rw-r--r-- | src/node/test/server_test.js | 4 | ||||
-rw-r--r-- | src/node/test/surface_test.js | 14 | ||||
-rw-r--r-- | src/python/grpcio/commands.py | 2 | ||||
-rw-r--r-- | src/ruby/ext/grpc/rb_call.c | 6 | ||||
-rw-r--r-- | src/ruby/ext/grpc/rb_call_credentials.c | 2 | ||||
-rw-r--r-- | src/ruby/ext/grpc/rb_event_thread.c | 3 |
19 files changed, 94 insertions, 39 deletions
diff --git a/src/core/surface/init.c b/src/core/surface/init.c index 19cea4c4f6..e3ab70dba7 100644 --- a/src/core/surface/init.c +++ b/src/core/surface/init.c @@ -117,8 +117,10 @@ void grpc_init(void) { grpc_iomgr_init(); grpc_executor_init(); grpc_tracer_init("GRPC_TRACE"); - /* Only initialize census if noone else has. */ - if (census_enabled() == CENSUS_FEATURE_NONE) { + /* Only initialize census if no one else has and some features are + * available. */ + if (census_enabled() == CENSUS_FEATURE_NONE && + census_supported() != CENSUS_FEATURE_NONE) { if (census_initialize(census_supported())) { /* enable all features. */ gpr_log(GPR_ERROR, "Could not initialize census."); } diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc index 2aa532808c..710d7cb5c2 100644 --- a/src/cpp/client/client_context.cc +++ b/src/cpp/client/client_context.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -48,6 +48,7 @@ namespace grpc { class DefaultGlobalClientCallbacks GRPC_FINAL : public ClientContext::GlobalCallbacks { public: + ~DefaultGlobalClientCallbacks() GRPC_OVERRIDE {} void DefaultConstructor(ClientContext* context) GRPC_OVERRIDE {} void Destructor(ClientContext* context) GRPC_OVERRIDE {} }; diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc index 878775bbee..3bf9f3fa0f 100644 --- a/src/cpp/server/server.cc +++ b/src/cpp/server/server.cc @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -53,17 +53,17 @@ namespace grpc { class DefaultGlobalCallbacks GRPC_FINAL : public Server::GlobalCallbacks { public: + ~DefaultGlobalCallbacks() GRPC_OVERRIDE {} void PreSynchronousRequest(ServerContext* context) GRPC_OVERRIDE {} void PostSynchronousRequest(ServerContext* context) GRPC_OVERRIDE {} }; -static Server::GlobalCallbacks* g_callbacks = nullptr; +static std::shared_ptr<Server::GlobalCallbacks> g_callbacks = nullptr; static gpr_once g_once_init_callbacks = GPR_ONCE_INIT; static void InitGlobalCallbacks() { if (g_callbacks == nullptr) { - static DefaultGlobalCallbacks default_global_callbacks; - g_callbacks = &default_global_callbacks; + g_callbacks.reset(new DefaultGlobalCallbacks()); } } @@ -234,12 +234,12 @@ class Server::SyncRequest GRPC_FINAL : public CompletionQueueTag { } } - void Run() { + void Run(std::shared_ptr<GlobalCallbacks> global_callbacks) { ctx_.BeginCompletionOp(&call_); - g_callbacks->PreSynchronousRequest(&ctx_); + global_callbacks->PreSynchronousRequest(&ctx_); method_->handler()->RunHandler(MethodHandler::HandlerParameter( &call_, &ctx_, request_payload_, call_.max_message_size())); - g_callbacks->PostSynchronousRequest(&ctx_); + global_callbacks->PostSynchronousRequest(&ctx_); request_payload_ = nullptr; void* ignored_tag; bool ignored_ok; @@ -287,6 +287,7 @@ Server::Server(ThreadPoolInterface* thread_pool, bool thread_pool_owned, thread_pool_(thread_pool), thread_pool_owned_(thread_pool_owned) { gpr_once_init(&g_once_init_callbacks, InitGlobalCallbacks); + global_callbacks_ = g_callbacks; grpc_server_register_completion_queue(server_, cq_.cq(), nullptr); } @@ -311,7 +312,7 @@ Server::~Server() { void Server::SetGlobalCallbacks(GlobalCallbacks* callbacks) { GPR_ASSERT(g_callbacks == nullptr); GPR_ASSERT(callbacks != nullptr); - g_callbacks = callbacks; + g_callbacks.reset(callbacks); } bool Server::RegisterService(const grpc::string* host, RpcService* service) { @@ -569,7 +570,7 @@ void Server::RunRpc() { } } GPR_TIMER_SCOPE("cd.Run()", 0); - cd.Run(); + cd.Run(global_callbacks_); } } diff --git a/src/node/index.js b/src/node/index.js index 0d1a7fd887..7eacdc67b1 100644 --- a/src/node/index.js +++ b/src/node/index.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,7 @@ var server = require('./src/server.js'); var Metadata = require('./src/metadata.js'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('./src/grpc_extension'); /** * Load a gRPC object from an existing ProtoBuf.Reflect object. diff --git a/src/node/src/client.js b/src/node/src/client.js index d57826781d..b5247a69ee 100644 --- a/src/node/src/client.js +++ b/src/node/src/client.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,7 @@ var _ = require('lodash'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('./grpc_extension'); var common = require('./common'); diff --git a/src/node/src/credentials.js b/src/node/src/credentials.js index dcbfac18f4..710ab6d879 100644 --- a/src/node/src/credentials.js +++ b/src/node/src/credentials.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -61,7 +61,7 @@ 'use strict'; -var grpc = require('bindings')('grpc_node.node'); +var grpc = require('./grpc_extension'); var CallCredentials = grpc.CallCredentials; diff --git a/src/node/src/grpc_extension.js b/src/node/src/grpc_extension.js new file mode 100644 index 0000000000..d4eca65fcb --- /dev/null +++ b/src/node/src/grpc_extension.js @@ -0,0 +1,40 @@ +/* + * + * Copyright 2016, Google Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following disclaimer + * in the documentation and/or other materials provided with the + * distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + * + */ + +var binary = require('node-pre-gyp'); +var path = require('path'); +var binding_path = binary.find(path.resolve( + path.join(__dirname,'../../../package.json'))); +var binding = require(binding_path); + +module.exports = binding; diff --git a/src/node/src/metadata.js b/src/node/src/metadata.js index fef79f959e..51a9f8a216 100644 --- a/src/node/src/metadata.js +++ b/src/node/src/metadata.js @@ -49,7 +49,7 @@ var _ = require('lodash'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('./grpc_extension'); /** * Class for storing metadata. Keys are normalized to lowercase ASCII. diff --git a/src/node/src/server.js b/src/node/src/server.js index ceaa9f5d1f..e5aadcd565 100644 --- a/src/node/src/server.js +++ b/src/node/src/server.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -51,7 +51,7 @@ var _ = require('lodash'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('./grpc_extension'); var common = require('./common'); diff --git a/src/node/test/call_test.js b/src/node/test/call_test.js index f1f86b35db..2300096d03 100644 --- a/src/node/test/call_test.js +++ b/src/node/test/call_test.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('../src/grpc_extension'); /** * Helper function to return an absolute deadline given a relative timeout in diff --git a/src/node/test/channel_test.js b/src/node/test/channel_test.js index 7163a5fb5e..c0ae2b769a 100644 --- a/src/node/test/channel_test.js +++ b/src/node/test/channel_test.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('../src/grpc_extension'); /** * This is used for testing functions with multiple asynchronous calls that diff --git a/src/node/test/constant_test.js b/src/node/test/constant_test.js index b17cd339cb..712c70706d 100644 --- a/src/node/test/constant_test.js +++ b/src/node/test/constant_test.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('../src/grpc_extension'); /** * List of all status names diff --git a/src/node/test/end_to_end_test.js b/src/node/test/end_to_end_test.js index 0f6c5941c4..353c6c761d 100644 --- a/src/node/test/end_to_end_test.js +++ b/src/node/test/end_to_end_test.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -34,7 +34,7 @@ 'use strict'; var assert = require('assert'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('../src/grpc_extension'); /** * This is used for testing functions with multiple asynchronous calls that diff --git a/src/node/test/server_test.js b/src/node/test/server_test.js index 592f47e145..71a9647184 100644 --- a/src/node/test/server_test.js +++ b/src/node/test/server_test.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -36,7 +36,7 @@ var assert = require('assert'); var fs = require('fs'); var path = require('path'); -var grpc = require('bindings')('grpc_node'); +var grpc = require('../src/grpc_extension'); describe('server', function() { describe('constructor', function() { diff --git a/src/node/test/surface_test.js b/src/node/test/surface_test.js index fc765ed731..c65d95f767 100644 --- a/src/node/test/surface_test.js +++ b/src/node/test/surface_test.js @@ -1,6 +1,6 @@ /* * - * Copyright 2015, Google Inc. + * Copyright 2015-2016, Google Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -952,6 +952,7 @@ describe('Call propagation', function() { describe('Cancellation', function() { it('With a unary call', function(done) { done = multiDone(done, 2); + var call; proxy_impl.unary = function(parent, callback) { client.unary(parent.request, function(err, value) { try { @@ -969,12 +970,13 @@ describe('Call propagation', function() { proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, grpc.credentials.createInsecure()); - var call = proxy_client.unary({}, function(err, value) { + call = proxy_client.unary({}, function(err, value) { done(); }); }); it('With a client stream call', function(done) { done = multiDone(done, 2); + var call; proxy_impl.clientStream = function(parent, callback) { client.clientStream(function(err, value) { try { @@ -992,12 +994,13 @@ describe('Call propagation', function() { proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, grpc.credentials.createInsecure()); - var call = proxy_client.clientStream(function(err, value) { + call = proxy_client.clientStream(function(err, value) { done(); }); }); it('With a server stream call', function(done) { done = multiDone(done, 2); + var call; proxy_impl.serverStream = function(parent) { var child = client.serverStream(parent.request, null, {parent: parent}); @@ -1013,13 +1016,14 @@ describe('Call propagation', function() { proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, grpc.credentials.createInsecure()); - var call = proxy_client.serverStream({}); + call = proxy_client.serverStream({}); call.on('error', function(err) { done(); }); }); it('With a bidi stream call', function(done) { done = multiDone(done, 2); + var call; proxy_impl.bidiStream = function(parent) { var child = client.bidiStream(null, {parent: parent}); child.on('error', function(err) { @@ -1034,7 +1038,7 @@ describe('Call propagation', function() { proxy.start(); var proxy_client = new Client('localhost:' + proxy_port, grpc.credentials.createInsecure()); - var call = proxy_client.bidiStream(); + call = proxy_client.bidiStream(); call.on('error', function(err) { done(); }); diff --git a/src/python/grpcio/commands.py b/src/python/grpcio/commands.py index ff35c45861..29b506abe0 100644 --- a/src/python/grpcio/commands.py +++ b/src/python/grpcio/commands.py @@ -41,6 +41,8 @@ from setuptools.command import build_ext from setuptools.command import build_py from setuptools.command import test +import support + PYTHON_STEM = os.path.dirname(os.path.abspath(__file__)) CONF_PY_ADDENDUM = """ diff --git a/src/ruby/ext/grpc/rb_call.c b/src/ruby/ext/grpc/rb_call.c index 43adafb73f..8f33d72417 100644 --- a/src/ruby/ext/grpc/rb_call.c +++ b/src/ruby/ext/grpc/rb_call.c @@ -525,12 +525,12 @@ typedef struct run_batch_stack { grpc_status_code recv_status; char *recv_status_details; size_t recv_status_details_capacity; - uint write_flag; + unsigned write_flag; } run_batch_stack; /* grpc_run_batch_stack_init ensures the run_batch_stack is properly * initialized */ -static void grpc_run_batch_stack_init(run_batch_stack *st, uint write_flag) { +static void grpc_run_batch_stack_init(run_batch_stack *st, unsigned write_flag) { MEMZERO(st, run_batch_stack, 1); grpc_metadata_array_init(&st->send_metadata); grpc_metadata_array_init(&st->send_trailing_metadata); @@ -696,7 +696,7 @@ static VALUE grpc_rb_call_run_batch(VALUE self, VALUE cqueue, VALUE tag, grpc_call_error err; VALUE result = Qnil; VALUE rb_write_flag = rb_ivar_get(self, id_write_flag); - uint write_flag = 0; + unsigned write_flag = 0; TypedData_Get_Struct(self, grpc_call, &grpc_call_data_type, call); /* Validate the ops args, adding them to a ruby array */ diff --git a/src/ruby/ext/grpc/rb_call_credentials.c b/src/ruby/ext/grpc/rb_call_credentials.c index 4d719d7541..ebcc6592c2 100644 --- a/src/ruby/ext/grpc/rb_call_credentials.c +++ b/src/ruby/ext/grpc/rb_call_credentials.c @@ -79,6 +79,7 @@ static VALUE grpc_rb_call_credentials_callback(VALUE callback_args) { static VALUE grpc_rb_call_credentials_callback_rescue(VALUE args, VALUE exception_object) { VALUE result = rb_hash_new(); + (void)args; rb_hash_aset(result, rb_str_new2("metadata"), Qnil); /* Currently only gives the exception class name. It should be possible get more details */ @@ -132,6 +133,7 @@ static void grpc_rb_call_credentials_plugin_get_metadata( } static void grpc_rb_call_credentials_plugin_destroy(void *state) { + (void)state; // Not sure what needs to be done here } diff --git a/src/ruby/ext/grpc/rb_event_thread.c b/src/ruby/ext/grpc/rb_event_thread.c index 95af091317..516f0bdad2 100644 --- a/src/ruby/ext/grpc/rb_event_thread.c +++ b/src/ruby/ext/grpc/rb_event_thread.c @@ -102,6 +102,7 @@ static void grpc_rb_event_queue_destroy() { static void *grpc_rb_wait_for_event_no_gil(void *param) { grpc_rb_event *event = NULL; + (void)param; gpr_mu_lock(&event_queue.mu); while ((event = grpc_rb_event_queue_dequeue()) == NULL) { gpr_cv_wait(&event_queue.cv, @@ -117,6 +118,7 @@ static void *grpc_rb_wait_for_event_no_gil(void *param) { } static void grpc_rb_event_unblocking_func(void *arg) { + (void)arg; gpr_mu_lock(&event_queue.mu); event_queue.abort = true; gpr_cv_signal(&event_queue.cv); @@ -127,6 +129,7 @@ static void grpc_rb_event_unblocking_func(void *arg) { * events */ static VALUE grpc_rb_event_thread(VALUE arg) { grpc_rb_event *event; + (void)arg; while(true) { event = (grpc_rb_event*)rb_thread_call_without_gvl( grpc_rb_wait_for_event_no_gil, NULL, |