diff --git a/src/core/support/cpu_windows.c b/src/core/support/cpu_windows.c index cb454ccd3beed4f732f484b2f0a8088e89d8a7fb..f56bab3f8b42b9ea949fe0cfbb2411bf2696e895 100644 --- a/src/core/support/cpu_windows.c +++ b/src/core/support/cpu_windows.c @@ -34,19 +34,17 @@ #include <grpc/support/port_platform.h> #ifdef GPR_WIN32 - +#include <windows.h> #include <grpc/support/log.h> unsigned gpr_cpu_num_cores(void) { - /* TODO(jtattermusch): implement */ - gpr_log(GPR_ERROR, "Cannot determine number of CPUs: assuming 1"); - return 1; + SYSTEM_INFO si; + GetSystemInfo(&si); + return si.dwNumberOfProcessors; } unsigned gpr_cpu_current_cpu(void) { - /* TODO(jtattermusch): implement */ - gpr_log(GPR_ERROR, "Cannot determine current CPU"); - return 0; + return GetCurrentProcessorNumber(); } #endif /* GPR_WIN32 */ diff --git a/src/core/surface/call.c b/src/core/surface/call.c index 5513a63332ab8c1996f96a4e73908a6c201b5788..136921656fce1e46182c69d797622f72f567a230 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -711,6 +711,10 @@ static void call_on_done_recv(void *pc, int success) { if (call->recv_state == GRPC_STREAM_CLOSED) { GPR_ASSERT(call->read_state <= READ_STATE_STREAM_CLOSED); call->read_state = READ_STATE_STREAM_CLOSED; + if (call->have_alarm) { + grpc_alarm_cancel(&call->alarm); + call->have_alarm = 0; + } } finish_read_ops(call); } else { diff --git a/src/core/surface/channel.c b/src/core/surface/channel.c index 78f9144c19c980998bd41928170a5aa90a8c9ae0..be9da2b7f95104232c5b31bf142a606e995f3128 100644 --- a/src/core/surface/channel.c +++ b/src/core/surface/channel.c @@ -128,13 +128,6 @@ static grpc_call *grpc_channel_create_call_internal( GPR_ARRAY_SIZE(send_metadata), deadline); } -grpc_call *grpc_channel_create_call_old(grpc_channel *channel, - const char *method, const char *host, - gpr_timespec absolute_deadline) { - return grpc_channel_create_call(channel, NULL, method, host, - absolute_deadline); -} - grpc_call *grpc_channel_create_call(grpc_channel *channel, grpc_completion_queue *cq, const char *method, const char *host, diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c index e182468d9b0d0bdfbab4eb9fb154501d735f15d9..fb8b75798d33c5e155222c668ac79db395e9a549 100644 --- a/src/csharp/ext/grpc_csharp_ext.c +++ b/src/csharp/ext/grpc_csharp_ext.c @@ -415,16 +415,6 @@ GPR_EXPORT void GPR_CALLTYPE grpcsharp_call_destroy(grpc_call *call) { grpc_call_destroy(call); } -GPR_EXPORT void GPR_CALLTYPE -grpcsharp_call_start_write_from_copied_buffer(grpc_call *call, - const char *buffer, size_t len, - void *tag, gpr_uint32 flags) { - grpc_byte_buffer *byte_buffer = string_to_byte_buffer(buffer, len); - GPR_ASSERT(grpc_call_start_write_old(call, byte_buffer, tag, flags) == - GRPC_CALL_OK); - grpc_byte_buffer_destroy(byte_buffer); -} - GPR_EXPORT grpc_call_error GPR_CALLTYPE grpcsharp_call_start_unary(grpc_call *call, callback_funcptr callback, const char *send_buffer, size_t send_buffer_len, diff --git a/src/python/src/grpc/_adapter/_call.h b/src/python/src/grpc/_adapter/_call.h index fb9160901baf084b78e8a4905d33eb0166297b74..b4cf9d7ec99f969095938a865de42f90c8d5de3f 100644 --- a/src/python/src/grpc/_adapter/_call.h +++ b/src/python/src/grpc/_adapter/_call.h @@ -70,7 +70,7 @@ typedef struct { grpc_call *c_call; } Call; -PyTypeObject pygrpc_CallType; +extern PyTypeObject pygrpc_CallType; int pygrpc_add_call(PyObject *module); diff --git a/src/python/src/grpc/_adapter/_channel.h b/src/python/src/grpc/_adapter/_channel.h index afc0f80359d3fb6003f6de62541e5866f1fbad8e..65894939a23302911739d0fa119d15b4868c5751 100644 --- a/src/python/src/grpc/_adapter/_channel.h +++ b/src/python/src/grpc/_adapter/_channel.h @@ -42,7 +42,7 @@ typedef struct { grpc_channel *c_channel; } Channel; -PyTypeObject pygrpc_ChannelType; +extern PyTypeObject pygrpc_ChannelType; int pygrpc_add_channel(PyObject *module); diff --git a/src/python/src/grpc/_adapter/_client_credentials.h b/src/python/src/grpc/_adapter/_client_credentials.h index bb9f7f0c3a17a02fa4a5ecdf26353cd8fb652b2f..fe04016d20cf29e6a0d6464e346b423dabaf30c9 100644 --- a/src/python/src/grpc/_adapter/_client_credentials.h +++ b/src/python/src/grpc/_adapter/_client_credentials.h @@ -42,7 +42,7 @@ typedef struct { grpc_credentials *c_client_credentials; } ClientCredentials; -PyTypeObject pygrpc_ClientCredentialsType; +extern PyTypeObject pygrpc_ClientCredentialsType; int pygrpc_add_client_credentials(PyObject *module); diff --git a/src/python/src/grpc/_adapter/_completion_queue.c b/src/python/src/grpc/_adapter/_completion_queue.c index 5f1cb2a3a680acb41af818502ed412758ab881d5..f616faf629bdcc5ca48230462d3060239b6b579d 100644 --- a/src/python/src/grpc/_adapter/_completion_queue.c +++ b/src/python/src/grpc/_adapter/_completion_queue.c @@ -354,6 +354,8 @@ static PyObject *pygrpc_completion_queue_get(CompletionQueue *self, PyObject *event_args; PyObject *event; + pygrpc_tag *tag; + if (!(PyArg_ParseTuple(args, "O:get", &deadline))) { return NULL; } @@ -380,7 +382,7 @@ static PyObject *pygrpc_completion_queue_get(CompletionQueue *self, Py_RETURN_NONE; } - pygrpc_tag *tag = (pygrpc_tag *)c_event->tag; + tag = (pygrpc_tag *)c_event->tag; switch (c_event->type) { case GRPC_QUEUE_SHUTDOWN: diff --git a/src/python/src/grpc/_adapter/_completion_queue.h b/src/python/src/grpc/_adapter/_completion_queue.h index 9b377d15d9c5831d1eb5ea127981a9237c396dd9..516694daa19483340f82b2693811350130cd6d72 100644 --- a/src/python/src/grpc/_adapter/_completion_queue.h +++ b/src/python/src/grpc/_adapter/_completion_queue.h @@ -42,7 +42,7 @@ typedef struct { grpc_completion_queue *c_completion_queue; } CompletionQueue; -PyTypeObject pygrpc_CompletionQueueType; +extern PyTypeObject pygrpc_CompletionQueueType; int pygrpc_add_completion_queue(PyObject *module); diff --git a/src/python/src/grpc/_adapter/_server_credentials.h b/src/python/src/grpc/_adapter/_server_credentials.h index 6090404bd9561602b5af7f4cf7ce3fa2208693d0..75af9340897940b940d17318ec7df3fbe2f6c7ef 100644 --- a/src/python/src/grpc/_adapter/_server_credentials.h +++ b/src/python/src/grpc/_adapter/_server_credentials.h @@ -42,7 +42,7 @@ typedef struct { grpc_server_credentials *c_server_credentials; } ServerCredentials; -PyTypeObject pygrpc_ServerCredentialsType; +extern PyTypeObject pygrpc_ServerCredentialsType; int pygrpc_add_server_credentials(PyObject *module); diff --git a/src/python/src/grpc/_adapter/_tag.h b/src/python/src/grpc/_adapter/_tag.h index 82987ea102c87de4f9aedfb8eb751d65e03a6f50..b18c44576dae4c3d4bb66e1dd8581f53d5b4a37d 100644 --- a/src/python/src/grpc/_adapter/_tag.h +++ b/src/python/src/grpc/_adapter/_tag.h @@ -51,7 +51,7 @@ typedef enum { PYGRPC_FINISH_ACCEPTED = 4, PYGRPC_CLIENT_METADATA_READ = 5, PYGRPC_FINISHED_CLIENT = 6, - PYGRPC_FINISHED_SERVER = 7, + PYGRPC_FINISHED_SERVER = 7 } pygrpc_tag_type; typedef struct { diff --git a/src/python/src/setup.py b/src/python/src/setup.py index 767504967764bb616cca7b08de486fa4674f1905..a13dc4ec19da952f03fe9663618ebf043ad4e487 100644 --- a/src/python/src/setup.py +++ b/src/python/src/setup.py @@ -86,7 +86,7 @@ _PACKAGE_DIRECTORIES = { setuptools.setup( name='grpcio', - version='0.5.0a1', + version='0.5.0a2', ext_modules=[_EXTENSION_MODULE], packages=list(_PACKAGES), package_dir=_PACKAGE_DIRECTORIES, diff --git a/test/core/fling/server.c b/test/core/fling/server.c index b7e1c831f0df8fcd8dc82cdb85a33614cb8fd5c6..63c7bd7f884ebcb8ac92ce72c7100b605b3bd126 100644 --- a/test/core/fling/server.c +++ b/test/core/fling/server.c @@ -39,6 +39,7 @@ #include <stdlib.h> #include <string.h> #include <time.h> +#include <unistd.h> #include "test/core/util/grpc_profiler.h" #include "test/core/util/test_config.h" @@ -165,7 +166,7 @@ static void start_send_status(void) { tag(FLING_SERVER_SEND_STATUS_FOR_STREAMING))); } -static void sigint_handler(int x) { got_sigint = 1; } +static void sigint_handler(int x) { _exit(0); } int main(int argc, char **argv) { grpc_event *ev;