diff --git a/BUILD b/BUILD index 073d8cbf7e2a51999e4913296ba89d0f2bfcdf75..1b2106ec4d3a3935281ce7a20b8ea6ffe02b2cdd 100644 --- a/BUILD +++ b/BUILD @@ -283,6 +283,7 @@ cc_library( "src/core/json/json_reader.c", "src/core/json/json_string.c", "src/core/json/json_writer.c", + "src/core/surface/alarm.c", "src/core/surface/api_trace.c", "src/core/surface/byte_buffer.c", "src/core/surface/byte_buffer_reader.c", @@ -698,6 +699,7 @@ cc_library( "src/core/json/json_reader.c", "src/core/json/json_string.c", "src/core/json/json_writer.c", + "src/core/surface/alarm.c", "src/core/surface/api_trace.c", "src/core/surface/byte_buffer.c", "src/core/surface/byte_buffer_reader.c", @@ -1301,6 +1303,7 @@ objc_library( "src/core/json/json_reader.c", "src/core/json/json_string.c", "src/core/json/json_writer.c", + "src/core/surface/alarm.c", "src/core/surface/api_trace.c", "src/core/surface/byte_buffer.c", "src/core/surface/byte_buffer_reader.c", diff --git a/Makefile b/Makefile index d0143a010bf04ca9e0ea90ec086184550ba2ea66..a190796c2716c0f11d02ae00144f9d6742a7a4cd 100644 --- a/Makefile +++ b/Makefile @@ -818,6 +818,7 @@ systemtap_dep_error: stop: @false +alarm_test: $(BINDIR)/$(CONFIG)/alarm_test algorithm_test: $(BINDIR)/$(CONFIG)/algorithm_test alloc_test: $(BINDIR)/$(CONFIG)/alloc_test alpn_test: $(BINDIR)/$(CONFIG)/alpn_test @@ -1124,6 +1125,7 @@ endif buildtests: buildtests_c buildtests_cxx buildtests_zookeeper buildtests_c: privatelibs_c \ + $(BINDIR)/$(CONFIG)/alarm_test \ $(BINDIR)/$(CONFIG)/algorithm_test \ $(BINDIR)/$(CONFIG)/alloc_test \ $(BINDIR)/$(CONFIG)/alpn_test \ @@ -1351,6 +1353,8 @@ test: test_c test_cxx test_zookeeper flaky_test: flaky_test_c flaky_test_cxx flaky_test_zookeeper test_c: buildtests_c + $(E) "[RUN] Testing alarm_test" + $(Q) $(BINDIR)/$(CONFIG)/alarm_test || ( echo test alarm_test failed ; exit 1 ) $(E) "[RUN] Testing algorithm_test" $(Q) $(BINDIR)/$(CONFIG)/algorithm_test || ( echo test algorithm_test failed ; exit 1 ) $(E) "[RUN] Testing alloc_test" @@ -2235,6 +2239,7 @@ LIBGRPC_SRC = \ src/core/json/json_reader.c \ src/core/json/json_string.c \ src/core/json/json_writer.c \ + src/core/surface/alarm.c \ src/core/surface/api_trace.c \ src/core/surface/byte_buffer.c \ src/core/surface/byte_buffer_reader.c \ @@ -2667,6 +2672,7 @@ LIBGRPC_UNSECURE_SRC = \ src/core/json/json_reader.c \ src/core/json/json_string.c \ src/core/json/json_writer.c \ + src/core/surface/alarm.c \ src/core/surface/api_trace.c \ src/core/surface/byte_buffer.c \ src/core/surface/byte_buffer_reader.c \ @@ -5689,6 +5695,38 @@ endif # All of the test targets, and protoc plugins +ALARM_TEST_SRC = \ + test/core/surface/alarm_test.c \ + +ALARM_TEST_OBJS = $(addprefix $(OBJDIR)/$(CONFIG)/, $(addsuffix .o, $(basename $(ALARM_TEST_SRC)))) +ifeq ($(NO_SECURE),true) + +# You can't build secure targets if you don't have OpenSSL. + +$(BINDIR)/$(CONFIG)/alarm_test: openssl_dep_error + +else + + + +$(BINDIR)/$(CONFIG)/alarm_test: $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + $(E) "[LD] Linking $@" + $(Q) mkdir -p `dirname $@` + $(Q) $(LD) $(LDFLAGS) $(ALARM_TEST_OBJS) $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a $(LDLIBS) $(LDLIBS_SECURE) -o $(BINDIR)/$(CONFIG)/alarm_test + +endif + +$(OBJDIR)/$(CONFIG)/test/core/surface/alarm_test.o: $(LIBDIR)/$(CONFIG)/libgrpc_test_util.a $(LIBDIR)/$(CONFIG)/libgrpc.a + +deps_alarm_test: $(ALARM_TEST_OBJS:.o=.dep) + +ifneq ($(NO_SECURE),true) +ifneq ($(NO_DEPS),true) +-include $(ALARM_TEST_OBJS:.o=.dep) +endif +endif + + ALGORITHM_TEST_SRC = \ test/core/compression/algorithm_test.c \ diff --git a/binding.gyp b/binding.gyp index a9d9870b4106316c2f28a13b2d5a1ecb9f087ab6..d6b85db9e325a629c21747e050d264fc58f0a40d 100644 --- a/binding.gyp +++ b/binding.gyp @@ -585,6 +585,7 @@ 'src/core/json/json_reader.c', 'src/core/json/json_string.c', 'src/core/json/json_writer.c', + 'src/core/surface/alarm.c', 'src/core/surface/api_trace.c', 'src/core/surface/byte_buffer.c', 'src/core/surface/byte_buffer_reader.c', diff --git a/build.yaml b/build.yaml index 1c2e324071b9c87700f09f74554ff36a2f244496..2293f793eee739c3380dd284bd0240d94210e095 100644 --- a/build.yaml +++ b/build.yaml @@ -417,6 +417,7 @@ filegroups: - src/core/json/json_reader.c - src/core/json/json_string.c - src/core/json/json_writer.c + - src/core/surface/alarm.c - src/core/surface/api_trace.c - src/core/surface/byte_buffer.c - src/core/surface/byte_buffer_reader.c @@ -849,6 +850,14 @@ libs: - winsock - global targets: +- name: alarm_test + build: test + language: c + src: + - test/core/surface/alarm_test.c + deps: + - grpc_test_util + - grpc - name: algorithm_test build: test language: c diff --git a/gRPC.podspec b/gRPC.podspec index 85ecc58fe594f7cc8c390c816d2c89d17e14737e..b9461823ae92e34621cd3b17a8bacc3d253543b3 100644 --- a/gRPC.podspec +++ b/gRPC.podspec @@ -357,6 +357,7 @@ Pod::Spec.new do |s| 'src/core/json/json_reader.c', 'src/core/json/json_string.c', 'src/core/json/json_writer.c', + 'src/core/surface/alarm.c', 'src/core/surface/api_trace.c', 'src/core/surface/byte_buffer.c', 'src/core/surface/byte_buffer_reader.c', diff --git a/grpc.gemspec b/grpc.gemspec index c2c9f14d97f578e91e6014c4822481ab5f61d474..2153326f33ecc8fba1aa194397f32b79629ff02f 100755 --- a/grpc.gemspec +++ b/grpc.gemspec @@ -341,6 +341,7 @@ Gem::Specification.new do |s| s.files += %w( src/core/json/json_reader.c ) s.files += %w( src/core/json/json_string.c ) s.files += %w( src/core/json/json_writer.c ) + s.files += %w( src/core/surface/alarm.c ) s.files += %w( src/core/surface/api_trace.c ) s.files += %w( src/core/surface/byte_buffer.c ) s.files += %w( src/core/surface/byte_buffer_reader.c ) diff --git a/package.json b/package.json index 264358f0a8fb4c8b1b5e27792665fe8adb081d72..997a5b5116746c5773bdc17c8e299dfea0ad04f2 100644 --- a/package.json +++ b/package.json @@ -380,6 +380,7 @@ "src/core/json/json_reader.c", "src/core/json/json_string.c", "src/core/json/json_writer.c", + "src/core/surface/alarm.c", "src/core/surface/api_trace.c", "src/core/surface/byte_buffer.c", "src/core/surface/byte_buffer_reader.c", diff --git a/src/core/surface/alarm.c b/src/core/surface/alarm.c index 7c47dd56f8233af3a7f39813f5170fcb2417668b..22d5f2c7a0e0a133a2970abbdb6a2cfd108474b0 100644 --- a/src/core/surface/alarm.c +++ b/src/core/surface/alarm.c @@ -48,7 +48,7 @@ struct grpc_alarm { static void do_nothing_end_completion(grpc_exec_ctx *exec_ctx, void *arg, grpc_cq_completion *c) {} -static void alarm_cb(grpc_exec_ctx *exec_ctx, void *arg, int success) { +static void alarm_cb(grpc_exec_ctx *exec_ctx, void *arg, bool success) { grpc_alarm *alarm = arg; grpc_cq_end_op(exec_ctx, alarm->cq, alarm->tag, success, do_nothing_end_completion, NULL, &alarm->completion); @@ -65,7 +65,7 @@ grpc_alarm *grpc_alarm_create(grpc_completion_queue *cq, gpr_timespec deadline, grpc_timer_init(&exec_ctx, &alarm->alarm, deadline, alarm_cb, alarm, gpr_now(GPR_CLOCK_MONOTONIC)); - grpc_cq_begin_op(cq); + grpc_cq_begin_op(cq, tag); grpc_exec_ctx_finish(&exec_ctx); return alarm; } diff --git a/src/python/grpcio/grpc_core_dependencies.py b/src/python/grpcio/grpc_core_dependencies.py index bc1ce723787012a5143ce80bc5d5d96388134728..db0609236886685b95c0684508f463c90943e245 100644 --- a/src/python/grpcio/grpc_core_dependencies.py +++ b/src/python/grpcio/grpc_core_dependencies.py @@ -129,6 +129,7 @@ CORE_SOURCE_FILES = [ 'src/core/json/json_reader.c', 'src/core/json/json_string.c', 'src/core/json/json_writer.c', + 'src/core/surface/alarm.c', 'src/core/surface/api_trace.c', 'src/core/surface/byte_buffer.c', 'src/core/surface/byte_buffer_reader.c', diff --git a/tools/doxygen/Doxyfile.core.internal b/tools/doxygen/Doxyfile.core.internal index a21bf1d88a7b1a387e8a29f6e37826806a7b6239..355021403551d763a065fbee91bb97141f56d77d 100644 --- a/tools/doxygen/Doxyfile.core.internal +++ b/tools/doxygen/Doxyfile.core.internal @@ -1054,6 +1054,7 @@ src/core/json/json.c \ src/core/json/json_reader.c \ src/core/json/json_string.c \ src/core/json/json_writer.c \ +src/core/surface/alarm.c \ src/core/surface/api_trace.c \ src/core/surface/byte_buffer.c \ src/core/surface/byte_buffer_reader.c \ diff --git a/tools/run_tests/sources_and_headers.json b/tools/run_tests/sources_and_headers.json index 6a06990b831416d53a1c9eb8ad51341efde2d4b9..a3cfd04c7c902db12f3d4d4226d4e75b32c4aacd 100644 --- a/tools/run_tests/sources_and_headers.json +++ b/tools/run_tests/sources_and_headers.json @@ -1,6 +1,18 @@ [ + { + "deps": [ + "grpc", + "grpc_test_util" + ], + "headers": [], + "language": "c", + "name": "alarm_test", + "src": [ + "test/core/surface/alarm_test.c" + ] + }, { "deps": [ "grpc", @@ -2930,6 +2942,7 @@ "src/core/support/time_precise.h", "src/core/support/time_win32.c", "src/core/support/tls_pthread.c", + "src/core/surface/alarm.c", "src/core/surface/api_trace.c", "src/core/surface/api_trace.h", "src/core/surface/byte_buffer.c", @@ -3561,6 +3574,7 @@ "src/core/support/time_precise.h", "src/core/support/time_win32.c", "src/core/support/tls_pthread.c", + "src/core/surface/alarm.c", "src/core/surface/api_trace.c", "src/core/surface/api_trace.h", "src/core/surface/byte_buffer.c", diff --git a/tools/run_tests/tests.json b/tools/run_tests/tests.json index fdfdc1b2717547857173e19d92d8cea2196d335a..a23a340b6c407263f72031cd22f8238d62406895 100644 --- a/tools/run_tests/tests.json +++ b/tools/run_tests/tests.json @@ -1,6 +1,26 @@ [ + { + "args": [], + "ci_platforms": [ + "linux", + "mac", + "posix", + "windows" + ], + "cpu_cost": 1.0, + "exclude_configs": [], + "flaky": false, + "language": "c", + "name": "alarm_test", + "platforms": [ + "linux", + "mac", + "posix", + "windows" + ] + }, { "args": [], "ci_platforms": [ diff --git a/vsprojects/buildtests_c.sln b/vsprojects/buildtests_c.sln index 304603620677d7cb563f86d8db07ebda8f9c0fe7..1b7261d3a96c4f7f9f70f7b04b707cd72f6c9a81 100644 --- a/vsprojects/buildtests_c.sln +++ b/vsprojects/buildtests_c.sln @@ -81,6 +81,15 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "end2end_certs", "vcxproj\te lib = "True" EndProjectSection EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "alarm_test", "vcxproj\test\alarm_test\alarm_test.vcxproj", "{AFD362D7-0E2A-E700-1F27-9D90F76166DF}" + ProjectSection(myProperties) = preProject + lib = "False" + EndProjectSection + ProjectSection(ProjectDependencies) = postProject + {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} = {17BCAFC0-5FDC-4C94-AEB9-95F3E220614B} + {29D16885-7228-4C31-81ED-5F9187C7F2A9} = {29D16885-7228-4C31-81ED-5F9187C7F2A9} + EndProjectSection +EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "algorithm_test", "vcxproj\test\algorithm_test\algorithm_test.vcxproj", "{216FDCB2-9D93-0D86-F0F1-12E16312A191}" ProjectSection(myProperties) = preProject lib = "False" @@ -1260,6 +1269,22 @@ Global {80EA2691-C037-6DD3-D3AB-21510BF0E64B}.Release-DLL|Win32.Build.0 = Release|Win32 {80EA2691-C037-6DD3-D3AB-21510BF0E64B}.Release-DLL|x64.ActiveCfg = Release|x64 {80EA2691-C037-6DD3-D3AB-21510BF0E64B}.Release-DLL|x64.Build.0 = Release|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|x64.ActiveCfg = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|Win32.ActiveCfg = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|x64.ActiveCfg = Release|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|Win32.Build.0 = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug|x64.Build.0 = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|Win32.Build.0 = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release|x64.Build.0 = Release|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|Win32.ActiveCfg = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|Win32.Build.0 = Debug|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|x64.ActiveCfg = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Debug-DLL|x64.Build.0 = Debug|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|Win32.ActiveCfg = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|Win32.Build.0 = Release|Win32 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|x64.ActiveCfg = Release|x64 + {AFD362D7-0E2A-E700-1F27-9D90F76166DF}.Release-DLL|x64.Build.0 = Release|x64 {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|Win32.ActiveCfg = Debug|Win32 {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Debug|x64.ActiveCfg = Debug|x64 {216FDCB2-9D93-0D86-F0F1-12E16312A191}.Release|Win32.ActiveCfg = Release|Win32 diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj b/vsprojects/vcxproj/grpc/grpc.vcxproj index 9cff22110baf5d3f21abf91dbd72a80522be1ea8..8f6ed3b838e0776d0dd2cba19d131a9757b92057 100644 --- a/vsprojects/vcxproj/grpc/grpc.vcxproj +++ b/vsprojects/vcxproj/grpc/grpc.vcxproj @@ -664,6 +664,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\json\json_writer.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\alarm.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\api_trace.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\byte_buffer.c"> diff --git a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters index 521ce2e1da27c5d75a4f915dab4e2dda9fa3fbb8..22b154aad597aa9ecc202e79fbf67a49d6be7f84 100644 --- a/vsprojects/vcxproj/grpc/grpc.vcxproj.filters +++ b/vsprojects/vcxproj/grpc/grpc.vcxproj.filters @@ -298,6 +298,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\json\json_writer.c"> <Filter>src\core\json</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\alarm.c"> + <Filter>src\core\surface</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\api_trace.c"> <Filter>src\core\surface</Filter> </ClCompile> diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj index a5707687eb456d6390ab2e6072b9b8d94013804c..4c68db9ae399a9e6f3dd37c54053109f3bf9a0fe 100644 --- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj +++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj @@ -682,6 +682,8 @@ </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\json\json_writer.c"> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\alarm.c"> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\api_trace.c"> </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\byte_buffer.c"> diff --git a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters index 2720c4e1966482c2237e9af8a46481cfdd050d83..5f66f587c466214ec8e03a1c1fb343f62f48c7d6 100644 --- a/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters +++ b/vsprojects/vcxproj/grpc_unsecure/grpc_unsecure.vcxproj.filters @@ -361,6 +361,9 @@ <ClCompile Include="$(SolutionDir)\..\src\core\json\json_writer.c"> <Filter>src\core\json</Filter> </ClCompile> + <ClCompile Include="$(SolutionDir)\..\src\core\surface\alarm.c"> + <Filter>src\core\surface</Filter> + </ClCompile> <ClCompile Include="$(SolutionDir)\..\src\core\surface\api_trace.c"> <Filter>src\core\surface</Filter> </ClCompile>