grpc 1.18.0-universal-darwin → 1.19.0.pre1-universal-darwin
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of grpc might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/src/ruby/ext/grpc/extconf.rb +12 -4
- data/src/ruby/ext/grpc/rb_call_credentials.c +8 -5
- data/src/ruby/ext/grpc/rb_channel.c +14 -10
- data/src/ruby/ext/grpc/rb_channel_credentials.c +8 -4
- data/src/ruby/ext/grpc/rb_compression_options.c +9 -7
- data/src/ruby/ext/grpc/rb_event_thread.c +2 -0
- data/src/ruby/ext/grpc/rb_grpc.c +22 -23
- data/src/ruby/ext/grpc/rb_grpc.h +4 -2
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.c +18 -0
- data/src/ruby/ext/grpc/rb_grpc_imports.generated.h +27 -0
- data/src/ruby/ext/grpc/rb_server.c +8 -4
- data/src/ruby/lib/grpc/2.2/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.3/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.4/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.5/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/2.6/grpc_c.bundle +0 -0
- data/src/ruby/lib/grpc/version.rb +1 -1
- metadata +8 -8
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 8c1653516bfe04f4ce4349ae33afe0d326f88c79ca9ef95f7fe5d952e652be9f
         | 
| 4 | 
            +
              data.tar.gz: 3bdea6f6c348cd35526afd5f28ae2d19548e50548da495c4b00eb1b95f281b95
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 53cbad48e947c4b66e6c998f55abc68fd4906a99ed4864b5e9a2b083c45f5750246b653d201b7c7a66613689dd116b13f718316b4b5611038dc14eb17e4d4ff1
         | 
| 7 | 
            +
              data.tar.gz: 026f59c198d48dc814b7bc868210c5c67829ef0927901d0a6893b9e91c7cfafdad42276a5ada8e267c73b3eca7d4cad63be04fac77c2b52f725ce9f0372f2ce4
         | 
| @@ -24,10 +24,18 @@ grpc_config = ENV['GRPC_CONFIG'] || 'opt' | |
| 24 24 |  | 
| 25 25 | 
             
            ENV['MACOSX_DEPLOYMENT_TARGET'] = '10.7'
         | 
| 26 26 |  | 
| 27 | 
            -
            ENV['AR']  | 
| 28 | 
            -
            ENV[' | 
| 29 | 
            -
             | 
| 30 | 
            -
            ENV[' | 
| 27 | 
            +
            if ENV['AR'].nil? || ENV['AR'].size == 0
         | 
| 28 | 
            +
                ENV['AR'] = RbConfig::CONFIG['AR'] + ' rcs'
         | 
| 29 | 
            +
            end
         | 
| 30 | 
            +
            if ENV['CC'].nil? || ENV['CC'].size == 0
         | 
| 31 | 
            +
                ENV['CC'] = RbConfig::CONFIG['CC']
         | 
| 32 | 
            +
            end
         | 
| 33 | 
            +
            if ENV['CXX'].nil? || ENV['CXX'].size == 0
         | 
| 34 | 
            +
                ENV['CXX'] = RbConfig::CONFIG['CXX']
         | 
| 35 | 
            +
            end
         | 
| 36 | 
            +
            if ENV['LD'].nil? || ENV['LD'].size == 0
         | 
| 37 | 
            +
                ENV['LD'] = ENV['CC']
         | 
| 38 | 
            +
            end
         | 
| 31 39 |  | 
| 32 40 | 
             
            ENV['AR'] = 'libtool -o' if RUBY_PLATFORM =~ /darwin/
         | 
| 33 41 |  | 
| @@ -134,8 +134,7 @@ static void grpc_rb_call_credentials_plugin_destroy(void* state) { | |
| 134 134 | 
             
              // Not sure what needs to be done here
         | 
| 135 135 | 
             
            }
         | 
| 136 136 |  | 
| 137 | 
            -
             | 
| 138 | 
            -
            static void grpc_rb_call_credentials_free(void* p) {
         | 
| 137 | 
            +
            static void grpc_rb_call_credentials_free_internal(void* p) {
         | 
| 139 138 | 
             
              grpc_rb_call_credentials* wrapper;
         | 
| 140 139 | 
             
              if (p == NULL) {
         | 
| 141 140 | 
             
                return;
         | 
| @@ -143,10 +142,15 @@ static void grpc_rb_call_credentials_free(void* p) { | |
| 143 142 | 
             
              wrapper = (grpc_rb_call_credentials*)p;
         | 
| 144 143 | 
             
              grpc_call_credentials_release(wrapper->wrapped);
         | 
| 145 144 | 
             
              wrapper->wrapped = NULL;
         | 
| 146 | 
            -
             | 
| 147 145 | 
             
              xfree(p);
         | 
| 148 146 | 
             
            }
         | 
| 149 147 |  | 
| 148 | 
            +
            /* Destroys the credentials instances. */
         | 
| 149 | 
            +
            static void grpc_rb_call_credentials_free(void* p) {
         | 
| 150 | 
            +
              grpc_rb_call_credentials_free_internal(p);
         | 
| 151 | 
            +
              grpc_ruby_shutdown();
         | 
| 152 | 
            +
            }
         | 
| 153 | 
            +
             | 
| 150 154 | 
             
            /* Protects the mark object from GC */
         | 
| 151 155 | 
             
            static void grpc_rb_call_credentials_mark(void* p) {
         | 
| 152 156 | 
             
              grpc_rb_call_credentials* wrapper = NULL;
         | 
| @@ -175,6 +179,7 @@ static rb_data_type_t grpc_rb_call_credentials_data_type = { | |
| 175 179 | 
             
            /* Allocates CallCredentials instances.
         | 
| 176 180 | 
             
               Provides safe initial defaults for the instance fields. */
         | 
| 177 181 | 
             
            static VALUE grpc_rb_call_credentials_alloc(VALUE cls) {
         | 
| 182 | 
            +
              grpc_ruby_init();
         | 
| 178 183 | 
             
              grpc_rb_call_credentials* wrapper = ALLOC(grpc_rb_call_credentials);
         | 
| 179 184 | 
             
              wrapper->wrapped = NULL;
         | 
| 180 185 | 
             
              wrapper->mark = Qnil;
         | 
| @@ -212,8 +217,6 @@ static VALUE grpc_rb_call_credentials_init(VALUE self, VALUE proc) { | |
| 212 217 | 
             
              grpc_call_credentials* creds = NULL;
         | 
| 213 218 | 
             
              grpc_metadata_credentials_plugin plugin;
         | 
| 214 219 |  | 
| 215 | 
            -
              grpc_ruby_once_init();
         | 
| 216 | 
            -
             | 
| 217 220 | 
             
              TypedData_Get_Struct(self, grpc_rb_call_credentials,
         | 
| 218 221 | 
             
                                   &grpc_rb_call_credentials_data_type, wrapper);
         | 
| 219 222 |  | 
| @@ -143,26 +143,29 @@ static void* channel_safe_destroy_without_gil(void* arg) { | |
| 143 143 | 
             
              return NULL;
         | 
| 144 144 | 
             
            }
         | 
| 145 145 |  | 
| 146 | 
            -
             | 
| 147 | 
            -
            static void grpc_rb_channel_free(void* p) {
         | 
| 146 | 
            +
            static void grpc_rb_channel_free_internal(void* p) {
         | 
| 148 147 | 
             
              grpc_rb_channel* ch = NULL;
         | 
| 149 148 | 
             
              if (p == NULL) {
         | 
| 150 149 | 
             
                return;
         | 
| 151 150 | 
             
              };
         | 
| 152 151 | 
             
              ch = (grpc_rb_channel*)p;
         | 
| 153 | 
            -
             | 
| 154 152 | 
             
              if (ch->bg_wrapped != NULL) {
         | 
| 155 153 | 
             
                /* assumption made here: it's ok to directly gpr_mu_lock the global
         | 
| 156 | 
            -
                 * connection polling mutex  | 
| 154 | 
            +
                 * connection polling mutex because we're in a finalizer,
         | 
| 157 155 | 
             
                 * and we can count on this thread to not be interrupted or
         | 
| 158 156 | 
             
                 * yield the gil. */
         | 
| 159 157 | 
             
                grpc_rb_channel_safe_destroy(ch->bg_wrapped);
         | 
| 160 158 | 
             
                ch->bg_wrapped = NULL;
         | 
| 161 159 | 
             
              }
         | 
| 162 | 
            -
             | 
| 163 160 | 
             
              xfree(p);
         | 
| 164 161 | 
             
            }
         | 
| 165 162 |  | 
| 163 | 
            +
            /* Destroys Channel instances. */
         | 
| 164 | 
            +
            static void grpc_rb_channel_free(void* p) {
         | 
| 165 | 
            +
              grpc_rb_channel_free_internal(p);
         | 
| 166 | 
            +
              grpc_ruby_shutdown();
         | 
| 167 | 
            +
            }
         | 
| 168 | 
            +
             | 
| 166 169 | 
             
            /* Protects the mark object from GC */
         | 
| 167 170 | 
             
            static void grpc_rb_channel_mark(void* p) {
         | 
| 168 171 | 
             
              grpc_rb_channel* channel = NULL;
         | 
| @@ -189,6 +192,7 @@ static rb_data_type_t grpc_channel_data_type = {"grpc_channel", | |
| 189 192 |  | 
| 190 193 | 
             
            /* Allocates grpc_rb_channel instances. */
         | 
| 191 194 | 
             
            static VALUE grpc_rb_channel_alloc(VALUE cls) {
         | 
| 195 | 
            +
              grpc_ruby_init();
         | 
| 192 196 | 
             
              grpc_rb_channel* wrapper = ALLOC(grpc_rb_channel);
         | 
| 193 197 | 
             
              wrapper->bg_wrapped = NULL;
         | 
| 194 198 | 
             
              wrapper->credentials = Qnil;
         | 
| @@ -216,7 +220,6 @@ static VALUE grpc_rb_channel_init(int argc, VALUE* argv, VALUE self) { | |
| 216 220 | 
             
              int stop_waiting_for_thread_start = 0;
         | 
| 217 221 | 
             
              MEMZERO(&args, grpc_channel_args, 1);
         | 
| 218 222 |  | 
| 219 | 
            -
              grpc_ruby_once_init();
         | 
| 220 223 | 
             
              grpc_ruby_fork_guard();
         | 
| 221 224 | 
             
              rb_thread_call_without_gvl(
         | 
| 222 225 | 
             
                  wait_until_channel_polling_thread_started_no_gil,
         | 
| @@ -292,7 +295,7 @@ static void* get_state_without_gil(void* arg) { | |
| 292 295 | 
             
              Indicates the current state of the channel, whose value is one of the
         | 
| 293 296 | 
             
              constants defined in GRPC::Core::ConnectivityStates.
         | 
| 294 297 |  | 
| 295 | 
            -
              It also tries to connect if the  | 
| 298 | 
            +
              It also tries to connect if the channel is idle in the second form. */
         | 
| 296 299 | 
             
            static VALUE grpc_rb_channel_get_connectivity_state(int argc, VALUE* argv,
         | 
| 297 300 | 
             
                                                                VALUE self) {
         | 
| 298 301 | 
             
              VALUE try_to_connect_param = Qfalse;
         | 
| @@ -327,8 +330,8 @@ static void* wait_for_watch_state_op_complete_without_gvl(void* arg) { | |
| 327 330 | 
             
              void* success = (void*)0;
         | 
| 328 331 |  | 
| 329 332 | 
             
              gpr_mu_lock(&global_connection_polling_mu);
         | 
| 330 | 
            -
              //  | 
| 331 | 
            -
              // been shut down.
         | 
| 333 | 
            +
              // it's unsafe to do a "watch" after "channel polling abort" because the cq
         | 
| 334 | 
            +
              // has been shut down.
         | 
| 332 335 | 
             
              if (abort_channel_polling || stack->bg_wrapped->channel_destroyed) {
         | 
| 333 336 | 
             
                gpr_mu_unlock(&global_connection_polling_mu);
         | 
| 334 337 | 
             
                return (void*)0;
         | 
| @@ -682,9 +685,10 @@ static VALUE run_poll_channels_loop(VALUE arg) { | |
| 682 685 | 
             
              gpr_log(
         | 
| 683 686 | 
             
                  GPR_DEBUG,
         | 
| 684 687 | 
             
                  "GRPC_RUBY: run_poll_channels_loop - create connection polling thread");
         | 
| 688 | 
            +
              grpc_ruby_init();
         | 
| 685 689 | 
             
              rb_thread_call_without_gvl(run_poll_channels_loop_no_gil, NULL,
         | 
| 686 690 | 
             
                                         run_poll_channels_loop_unblocking_func, NULL);
         | 
| 687 | 
            -
             | 
| 691 | 
            +
              grpc_ruby_shutdown();
         | 
| 688 692 | 
             
              return Qnil;
         | 
| 689 693 | 
             
            }
         | 
| 690 694 |  | 
| @@ -48,8 +48,7 @@ typedef struct grpc_rb_channel_credentials { | |
| 48 48 | 
             
              grpc_channel_credentials* wrapped;
         | 
| 49 49 | 
             
            } grpc_rb_channel_credentials;
         | 
| 50 50 |  | 
| 51 | 
            -
             | 
| 52 | 
            -
            static void grpc_rb_channel_credentials_free(void* p) {
         | 
| 51 | 
            +
            static void grpc_rb_channel_credentials_free_internal(void* p) {
         | 
| 53 52 | 
             
              grpc_rb_channel_credentials* wrapper = NULL;
         | 
| 54 53 | 
             
              if (p == NULL) {
         | 
| 55 54 | 
             
                return;
         | 
| @@ -61,6 +60,12 @@ static void grpc_rb_channel_credentials_free(void* p) { | |
| 61 60 | 
             
              xfree(p);
         | 
| 62 61 | 
             
            }
         | 
| 63 62 |  | 
| 63 | 
            +
            /* Destroys the credentials instances. */
         | 
| 64 | 
            +
            static void grpc_rb_channel_credentials_free(void* p) {
         | 
| 65 | 
            +
              grpc_rb_channel_credentials_free_internal(p);
         | 
| 66 | 
            +
              grpc_ruby_shutdown();
         | 
| 67 | 
            +
            }
         | 
| 68 | 
            +
             | 
| 64 69 | 
             
            /* Protects the mark object from GC */
         | 
| 65 70 | 
             
            static void grpc_rb_channel_credentials_mark(void* p) {
         | 
| 66 71 | 
             
              grpc_rb_channel_credentials* wrapper = NULL;
         | 
| @@ -90,6 +95,7 @@ static rb_data_type_t grpc_rb_channel_credentials_data_type = { | |
| 90 95 | 
             
            /* Allocates ChannelCredential instances.
         | 
| 91 96 | 
             
               Provides safe initial defaults for the instance fields. */
         | 
| 92 97 | 
             
            static VALUE grpc_rb_channel_credentials_alloc(VALUE cls) {
         | 
| 98 | 
            +
              grpc_ruby_init();
         | 
| 93 99 | 
             
              grpc_rb_channel_credentials* wrapper = ALLOC(grpc_rb_channel_credentials);
         | 
| 94 100 | 
             
              wrapper->wrapped = NULL;
         | 
| 95 101 | 
             
              wrapper->mark = Qnil;
         | 
| @@ -147,8 +153,6 @@ static VALUE grpc_rb_channel_credentials_init(int argc, VALUE* argv, | |
| 147 153 | 
             
              const char* pem_root_certs_cstr = NULL;
         | 
| 148 154 | 
             
              MEMZERO(&key_cert_pair, grpc_ssl_pem_key_cert_pair, 1);
         | 
| 149 155 |  | 
| 150 | 
            -
              grpc_ruby_once_init();
         | 
| 151 | 
            -
             | 
| 152 156 | 
             
              /* "03" == no mandatory arg, 3 optional */
         | 
| 153 157 | 
             
              rb_scan_args(argc, argv, "03", &pem_root_certs, &pem_private_key,
         | 
| 154 158 | 
             
                           &pem_cert_chain);
         | 
| @@ -52,23 +52,26 @@ typedef struct grpc_rb_compression_options { | |
| 52 52 | 
             
              grpc_compression_options* wrapped;
         | 
| 53 53 | 
             
            } grpc_rb_compression_options;
         | 
| 54 54 |  | 
| 55 | 
            -
             | 
| 56 | 
            -
             * wrapped grpc compression options. */
         | 
| 57 | 
            -
            static void grpc_rb_compression_options_free(void* p) {
         | 
| 55 | 
            +
            static void grpc_rb_compression_options_free_internal(void* p) {
         | 
| 58 56 | 
             
              grpc_rb_compression_options* wrapper = NULL;
         | 
| 59 57 | 
             
              if (p == NULL) {
         | 
| 60 58 | 
             
                return;
         | 
| 61 59 | 
             
              };
         | 
| 62 60 | 
             
              wrapper = (grpc_rb_compression_options*)p;
         | 
| 63 | 
            -
             | 
| 64 61 | 
             
              if (wrapper->wrapped != NULL) {
         | 
| 65 62 | 
             
                gpr_free(wrapper->wrapped);
         | 
| 66 63 | 
             
                wrapper->wrapped = NULL;
         | 
| 67 64 | 
             
              }
         | 
| 68 | 
            -
             | 
| 69 65 | 
             
              xfree(p);
         | 
| 70 66 | 
             
            }
         | 
| 71 67 |  | 
| 68 | 
            +
            /* Destroys the compression options instances and free the
         | 
| 69 | 
            +
             * wrapped grpc compression options. */
         | 
| 70 | 
            +
            static void grpc_rb_compression_options_free(void* p) {
         | 
| 71 | 
            +
              grpc_rb_compression_options_free_internal(p);
         | 
| 72 | 
            +
              grpc_ruby_shutdown();
         | 
| 73 | 
            +
            }
         | 
| 74 | 
            +
             | 
| 72 75 | 
             
            /* Ruby recognized data type for the CompressionOptions class. */
         | 
| 73 76 | 
             
            static rb_data_type_t grpc_rb_compression_options_data_type = {
         | 
| 74 77 | 
             
                "grpc_compression_options",
         | 
| @@ -87,10 +90,9 @@ static rb_data_type_t grpc_rb_compression_options_data_type = { | |
| 87 90 | 
             
               Allocate the wrapped grpc compression options and
         | 
| 88 91 | 
             
               initialize it here too. */
         | 
| 89 92 | 
             
            static VALUE grpc_rb_compression_options_alloc(VALUE cls) {
         | 
| 93 | 
            +
              grpc_ruby_init();
         | 
| 90 94 | 
             
              grpc_rb_compression_options* wrapper = NULL;
         | 
| 91 95 |  | 
| 92 | 
            -
              grpc_ruby_once_init();
         | 
| 93 | 
            -
             | 
| 94 96 | 
             
              wrapper = gpr_malloc(sizeof(grpc_rb_compression_options));
         | 
| 95 97 | 
             
              wrapper->wrapped = NULL;
         | 
| 96 98 | 
             
              wrapper->wrapped = gpr_malloc(sizeof(grpc_compression_options));
         | 
| @@ -115,6 +115,7 @@ static void grpc_rb_event_unblocking_func(void* arg) { | |
| 115 115 | 
             
            static VALUE grpc_rb_event_thread(VALUE arg) {
         | 
| 116 116 | 
             
              grpc_rb_event* event;
         | 
| 117 117 | 
             
              (void)arg;
         | 
| 118 | 
            +
              grpc_ruby_init();
         | 
| 118 119 | 
             
              while (true) {
         | 
| 119 120 | 
             
                event = (grpc_rb_event*)rb_thread_call_without_gvl(
         | 
| 120 121 | 
             
                    grpc_rb_wait_for_event_no_gil, NULL, grpc_rb_event_unblocking_func,
         | 
| @@ -128,6 +129,7 @@ static VALUE grpc_rb_event_thread(VALUE arg) { | |
| 128 129 | 
             
                }
         | 
| 129 130 | 
             
              }
         | 
| 130 131 | 
             
              grpc_rb_event_queue_destroy();
         | 
| 132 | 
            +
              grpc_ruby_shutdown();
         | 
| 131 133 | 
             
              return Qnil;
         | 
| 132 134 | 
             
            }
         | 
| 133 135 |  | 
    
        data/src/ruby/ext/grpc/rb_grpc.c
    CHANGED
    
    | @@ -276,10 +276,6 @@ static bool grpc_ruby_forked_after_init(void) { | |
| 276 276 | 
             
            }
         | 
| 277 277 | 
             
            #endif
         | 
| 278 278 |  | 
| 279 | 
            -
            static void grpc_rb_shutdown(void) {
         | 
| 280 | 
            -
              if (!grpc_ruby_forked_after_init()) grpc_shutdown();
         | 
| 281 | 
            -
            }
         | 
| 282 | 
            -
             | 
| 283 279 | 
             
            /* Initialize the GRPC module structs */
         | 
| 284 280 |  | 
| 285 281 | 
             
            /* grpc_rb_sNewServerRpc is the struct that holds new server rpc details. */
         | 
| @@ -298,12 +294,6 @@ VALUE sym_metadata = Qundef; | |
| 298 294 |  | 
| 299 295 | 
             
            static gpr_once g_once_init = GPR_ONCE_INIT;
         | 
| 300 296 |  | 
| 301 | 
            -
            static void grpc_ruby_once_init_internal() {
         | 
| 302 | 
            -
              grpc_ruby_set_init_pid();
         | 
| 303 | 
            -
              grpc_init();
         | 
| 304 | 
            -
              atexit(grpc_rb_shutdown);
         | 
| 305 | 
            -
            }
         | 
| 306 | 
            -
             | 
| 307 297 | 
             
            void grpc_ruby_fork_guard() {
         | 
| 308 298 | 
             
              if (grpc_ruby_forked_after_init()) {
         | 
| 309 299 | 
             
                rb_raise(rb_eRuntimeError, "grpc cannot be used before and after forking");
         | 
| @@ -313,19 +303,7 @@ void grpc_ruby_fork_guard() { | |
| 313 303 | 
             
            static VALUE bg_thread_init_rb_mu = Qundef;
         | 
| 314 304 | 
             
            static int bg_thread_init_done = 0;
         | 
| 315 305 |  | 
| 316 | 
            -
            void  | 
| 317 | 
            -
              /* ruby_vm_at_exit doesn't seem to be working. It would crash once every
         | 
| 318 | 
            -
               * blue moon, and some users are getting it repeatedly. See the discussions
         | 
| 319 | 
            -
               *  - https://github.com/grpc/grpc/pull/5337
         | 
| 320 | 
            -
               *  - https://bugs.ruby-lang.org/issues/12095
         | 
| 321 | 
            -
               *
         | 
| 322 | 
            -
               * In order to still be able to handle the (unlikely) situation where the
         | 
| 323 | 
            -
               * extension is loaded by a first Ruby VM that is subsequently destroyed,
         | 
| 324 | 
            -
               * then loaded again by another VM within the same process, we need to
         | 
| 325 | 
            -
               * schedule our initialization and destruction only once.
         | 
| 326 | 
            -
               */
         | 
| 327 | 
            -
              gpr_once_init(&g_once_init, grpc_ruby_once_init_internal);
         | 
| 328 | 
            -
             | 
| 306 | 
            +
            static void grpc_ruby_init_threads() {
         | 
| 329 307 | 
             
              // Avoid calling calling into ruby library (when creating threads here)
         | 
| 330 308 | 
             
              // in gpr_once_init. In general, it appears to be unsafe to call
         | 
| 331 309 | 
             
              // into the ruby library while holding a non-ruby mutex, because a gil yield
         | 
| @@ -339,6 +317,27 @@ void grpc_ruby_once_init() { | |
| 339 317 | 
             
              rb_mutex_unlock(bg_thread_init_rb_mu);
         | 
| 340 318 | 
             
            }
         | 
| 341 319 |  | 
| 320 | 
            +
            static int64_t g_grpc_ruby_init_count;
         | 
| 321 | 
            +
             | 
| 322 | 
            +
            void grpc_ruby_init() {
         | 
| 323 | 
            +
              gpr_once_init(&g_once_init, grpc_ruby_set_init_pid);
         | 
| 324 | 
            +
              grpc_init();
         | 
| 325 | 
            +
              grpc_ruby_init_threads();
         | 
| 326 | 
            +
              // (only gpr_log after logging has been initialized)
         | 
| 327 | 
            +
              gpr_log(GPR_DEBUG,
         | 
| 328 | 
            +
                      "GRPC_RUBY: grpc_ruby_init - prev g_grpc_ruby_init_count:%" PRId64,
         | 
| 329 | 
            +
                      g_grpc_ruby_init_count++);
         | 
| 330 | 
            +
            }
         | 
| 331 | 
            +
             | 
| 332 | 
            +
            void grpc_ruby_shutdown() {
         | 
| 333 | 
            +
              GPR_ASSERT(g_grpc_ruby_init_count > 0);
         | 
| 334 | 
            +
              if (!grpc_ruby_forked_after_init()) grpc_shutdown();
         | 
| 335 | 
            +
              gpr_log(
         | 
| 336 | 
            +
                  GPR_DEBUG,
         | 
| 337 | 
            +
                  "GRPC_RUBY: grpc_ruby_shutdown - prev g_grpc_ruby_init_count:%" PRId64,
         | 
| 338 | 
            +
                  g_grpc_ruby_init_count--);
         | 
| 339 | 
            +
            }
         | 
| 340 | 
            +
             | 
| 342 341 | 
             
            void Init_grpc_c() {
         | 
| 343 342 | 
             
              if (!grpc_rb_load_core()) {
         | 
| 344 343 | 
             
                rb_raise(rb_eLoadError, "Couldn't find or load gRPC's dynamic C core");
         | 
    
        data/src/ruby/ext/grpc/rb_grpc.h
    CHANGED
    
    | @@ -67,8 +67,10 @@ VALUE grpc_rb_cannot_init_copy(VALUE copy, VALUE self); | |
| 67 67 | 
             
            /* grpc_rb_time_timeval creates a gpr_timespec from a ruby time object. */
         | 
| 68 68 | 
             
            gpr_timespec grpc_rb_time_timeval(VALUE time, int interval);
         | 
| 69 69 |  | 
| 70 | 
            -
            void grpc_ruby_once_init();
         | 
| 71 | 
            -
             | 
| 72 70 | 
             
            void grpc_ruby_fork_guard();
         | 
| 73 71 |  | 
| 72 | 
            +
            void grpc_ruby_init();
         | 
| 73 | 
            +
             | 
| 74 | 
            +
            void grpc_ruby_shutdown();
         | 
| 75 | 
            +
             | 
| 74 76 | 
             
            #endif /* GRPC_RB_H_ */
         | 
| @@ -154,6 +154,15 @@ grpc_alts_credentials_create_type grpc_alts_credentials_create_import; | |
| 154 154 | 
             
            grpc_alts_server_credentials_create_type grpc_alts_server_credentials_create_import;
         | 
| 155 155 | 
             
            grpc_local_credentials_create_type grpc_local_credentials_create_import;
         | 
| 156 156 | 
             
            grpc_local_server_credentials_create_type grpc_local_server_credentials_create_import;
         | 
| 157 | 
            +
            grpc_tls_credentials_options_create_type grpc_tls_credentials_options_create_import;
         | 
| 158 | 
            +
            grpc_tls_credentials_options_set_cert_request_type_type grpc_tls_credentials_options_set_cert_request_type_import;
         | 
| 159 | 
            +
            grpc_tls_credentials_options_set_key_materials_config_type grpc_tls_credentials_options_set_key_materials_config_import;
         | 
| 160 | 
            +
            grpc_tls_credentials_options_set_credential_reload_config_type grpc_tls_credentials_options_set_credential_reload_config_import;
         | 
| 161 | 
            +
            grpc_tls_credentials_options_set_server_authorization_check_config_type grpc_tls_credentials_options_set_server_authorization_check_config_import;
         | 
| 162 | 
            +
            grpc_tls_key_materials_config_create_type grpc_tls_key_materials_config_create_import;
         | 
| 163 | 
            +
            grpc_tls_key_materials_config_set_key_materials_type grpc_tls_key_materials_config_set_key_materials_import;
         | 
| 164 | 
            +
            grpc_tls_credential_reload_config_create_type grpc_tls_credential_reload_config_create_import;
         | 
| 165 | 
            +
            grpc_tls_server_authorization_check_config_create_type grpc_tls_server_authorization_check_config_create_import;
         | 
| 157 166 | 
             
            grpc_raw_byte_buffer_create_type grpc_raw_byte_buffer_create_import;
         | 
| 158 167 | 
             
            grpc_raw_compressed_byte_buffer_create_type grpc_raw_compressed_byte_buffer_create_import;
         | 
| 159 168 | 
             
            grpc_byte_buffer_copy_type grpc_byte_buffer_copy_import;
         | 
| @@ -412,6 +421,15 @@ void grpc_rb_load_imports(HMODULE library) { | |
| 412 421 | 
             
              grpc_alts_server_credentials_create_import = (grpc_alts_server_credentials_create_type) GetProcAddress(library, "grpc_alts_server_credentials_create");
         | 
| 413 422 | 
             
              grpc_local_credentials_create_import = (grpc_local_credentials_create_type) GetProcAddress(library, "grpc_local_credentials_create");
         | 
| 414 423 | 
             
              grpc_local_server_credentials_create_import = (grpc_local_server_credentials_create_type) GetProcAddress(library, "grpc_local_server_credentials_create");
         | 
| 424 | 
            +
              grpc_tls_credentials_options_create_import = (grpc_tls_credentials_options_create_type) GetProcAddress(library, "grpc_tls_credentials_options_create");
         | 
| 425 | 
            +
              grpc_tls_credentials_options_set_cert_request_type_import = (grpc_tls_credentials_options_set_cert_request_type_type) GetProcAddress(library, "grpc_tls_credentials_options_set_cert_request_type");
         | 
| 426 | 
            +
              grpc_tls_credentials_options_set_key_materials_config_import = (grpc_tls_credentials_options_set_key_materials_config_type) GetProcAddress(library, "grpc_tls_credentials_options_set_key_materials_config");
         | 
| 427 | 
            +
              grpc_tls_credentials_options_set_credential_reload_config_import = (grpc_tls_credentials_options_set_credential_reload_config_type) GetProcAddress(library, "grpc_tls_credentials_options_set_credential_reload_config");
         | 
| 428 | 
            +
              grpc_tls_credentials_options_set_server_authorization_check_config_import = (grpc_tls_credentials_options_set_server_authorization_check_config_type) GetProcAddress(library, "grpc_tls_credentials_options_set_server_authorization_check_config");
         | 
| 429 | 
            +
              grpc_tls_key_materials_config_create_import = (grpc_tls_key_materials_config_create_type) GetProcAddress(library, "grpc_tls_key_materials_config_create");
         | 
| 430 | 
            +
              grpc_tls_key_materials_config_set_key_materials_import = (grpc_tls_key_materials_config_set_key_materials_type) GetProcAddress(library, "grpc_tls_key_materials_config_set_key_materials");
         | 
| 431 | 
            +
              grpc_tls_credential_reload_config_create_import = (grpc_tls_credential_reload_config_create_type) GetProcAddress(library, "grpc_tls_credential_reload_config_create");
         | 
| 432 | 
            +
              grpc_tls_server_authorization_check_config_create_import = (grpc_tls_server_authorization_check_config_create_type) GetProcAddress(library, "grpc_tls_server_authorization_check_config_create");
         | 
| 415 433 | 
             
              grpc_raw_byte_buffer_create_import = (grpc_raw_byte_buffer_create_type) GetProcAddress(library, "grpc_raw_byte_buffer_create");
         | 
| 416 434 | 
             
              grpc_raw_compressed_byte_buffer_create_import = (grpc_raw_compressed_byte_buffer_create_type) GetProcAddress(library, "grpc_raw_compressed_byte_buffer_create");
         | 
| 417 435 | 
             
              grpc_byte_buffer_copy_import = (grpc_byte_buffer_copy_type) GetProcAddress(library, "grpc_byte_buffer_copy");
         | 
| @@ -437,6 +437,33 @@ extern grpc_local_credentials_create_type grpc_local_credentials_create_import; | |
| 437 437 | 
             
            typedef grpc_server_credentials*(*grpc_local_server_credentials_create_type)(grpc_local_connect_type type);
         | 
| 438 438 | 
             
            extern grpc_local_server_credentials_create_type grpc_local_server_credentials_create_import;
         | 
| 439 439 | 
             
            #define grpc_local_server_credentials_create grpc_local_server_credentials_create_import
         | 
| 440 | 
            +
            typedef grpc_tls_credentials_options*(*grpc_tls_credentials_options_create_type)();
         | 
| 441 | 
            +
            extern grpc_tls_credentials_options_create_type grpc_tls_credentials_options_create_import;
         | 
| 442 | 
            +
            #define grpc_tls_credentials_options_create grpc_tls_credentials_options_create_import
         | 
| 443 | 
            +
            typedef int(*grpc_tls_credentials_options_set_cert_request_type_type)(grpc_tls_credentials_options* options, grpc_ssl_client_certificate_request_type type);
         | 
| 444 | 
            +
            extern grpc_tls_credentials_options_set_cert_request_type_type grpc_tls_credentials_options_set_cert_request_type_import;
         | 
| 445 | 
            +
            #define grpc_tls_credentials_options_set_cert_request_type grpc_tls_credentials_options_set_cert_request_type_import
         | 
| 446 | 
            +
            typedef int(*grpc_tls_credentials_options_set_key_materials_config_type)(grpc_tls_credentials_options* options, grpc_tls_key_materials_config* config);
         | 
| 447 | 
            +
            extern grpc_tls_credentials_options_set_key_materials_config_type grpc_tls_credentials_options_set_key_materials_config_import;
         | 
| 448 | 
            +
            #define grpc_tls_credentials_options_set_key_materials_config grpc_tls_credentials_options_set_key_materials_config_import
         | 
| 449 | 
            +
            typedef int(*grpc_tls_credentials_options_set_credential_reload_config_type)(grpc_tls_credentials_options* options, grpc_tls_credential_reload_config* config);
         | 
| 450 | 
            +
            extern grpc_tls_credentials_options_set_credential_reload_config_type grpc_tls_credentials_options_set_credential_reload_config_import;
         | 
| 451 | 
            +
            #define grpc_tls_credentials_options_set_credential_reload_config grpc_tls_credentials_options_set_credential_reload_config_import
         | 
| 452 | 
            +
            typedef int(*grpc_tls_credentials_options_set_server_authorization_check_config_type)(grpc_tls_credentials_options* options, grpc_tls_server_authorization_check_config* config);
         | 
| 453 | 
            +
            extern grpc_tls_credentials_options_set_server_authorization_check_config_type grpc_tls_credentials_options_set_server_authorization_check_config_import;
         | 
| 454 | 
            +
            #define grpc_tls_credentials_options_set_server_authorization_check_config grpc_tls_credentials_options_set_server_authorization_check_config_import
         | 
| 455 | 
            +
            typedef grpc_tls_key_materials_config*(*grpc_tls_key_materials_config_create_type)();
         | 
| 456 | 
            +
            extern grpc_tls_key_materials_config_create_type grpc_tls_key_materials_config_create_import;
         | 
| 457 | 
            +
            #define grpc_tls_key_materials_config_create grpc_tls_key_materials_config_create_import
         | 
| 458 | 
            +
            typedef int(*grpc_tls_key_materials_config_set_key_materials_type)(grpc_tls_key_materials_config* config, const char* pem_root_certs, const grpc_ssl_pem_key_cert_pair** pem_key_cert_pairs, size_t num_key_cert_pairs);
         | 
| 459 | 
            +
            extern grpc_tls_key_materials_config_set_key_materials_type grpc_tls_key_materials_config_set_key_materials_import;
         | 
| 460 | 
            +
            #define grpc_tls_key_materials_config_set_key_materials grpc_tls_key_materials_config_set_key_materials_import
         | 
| 461 | 
            +
            typedef grpc_tls_credential_reload_config*(*grpc_tls_credential_reload_config_create_type)(const void* config_user_data, int (*schedule)(void* config_user_data, grpc_tls_credential_reload_arg* arg), void (*cancel)(void* config_user_data, grpc_tls_credential_reload_arg* arg), void (*destruct)(void* config_user_data));
         | 
| 462 | 
            +
            extern grpc_tls_credential_reload_config_create_type grpc_tls_credential_reload_config_create_import;
         | 
| 463 | 
            +
            #define grpc_tls_credential_reload_config_create grpc_tls_credential_reload_config_create_import
         | 
| 464 | 
            +
            typedef grpc_tls_server_authorization_check_config*(*grpc_tls_server_authorization_check_config_create_type)(const void* config_user_data, int (*schedule)(void* config_user_data, grpc_tls_server_authorization_check_arg* arg), void (*cancel)(void* config_user_data, grpc_tls_server_authorization_check_arg* arg), void (*destruct)(void* config_user_data));
         | 
| 465 | 
            +
            extern grpc_tls_server_authorization_check_config_create_type grpc_tls_server_authorization_check_config_create_import;
         | 
| 466 | 
            +
            #define grpc_tls_server_authorization_check_config_create grpc_tls_server_authorization_check_config_create_import
         | 
| 440 467 | 
             
            typedef grpc_byte_buffer*(*grpc_raw_byte_buffer_create_type)(grpc_slice* slices, size_t nslices);
         | 
| 441 468 | 
             
            extern grpc_raw_byte_buffer_create_type grpc_raw_byte_buffer_create_import;
         | 
| 442 469 | 
             
            #define grpc_raw_byte_buffer_create grpc_raw_byte_buffer_create_import
         | 
| @@ -86,8 +86,7 @@ static void grpc_rb_server_maybe_destroy(grpc_rb_server* server) { | |
| 86 86 | 
             
              }
         | 
| 87 87 | 
             
            }
         | 
| 88 88 |  | 
| 89 | 
            -
             | 
| 90 | 
            -
            static void grpc_rb_server_free(void* p) {
         | 
| 89 | 
            +
            static void grpc_rb_server_free_internal(void* p) {
         | 
| 91 90 | 
             
              grpc_rb_server* svr = NULL;
         | 
| 92 91 | 
             
              gpr_timespec deadline;
         | 
| 93 92 | 
             
              if (p == NULL) {
         | 
| @@ -104,6 +103,12 @@ static void grpc_rb_server_free(void* p) { | |
| 104 103 | 
             
              xfree(p);
         | 
| 105 104 | 
             
            }
         | 
| 106 105 |  | 
| 106 | 
            +
            /* Destroys server instances. */
         | 
| 107 | 
            +
            static void grpc_rb_server_free(void* p) {
         | 
| 108 | 
            +
              grpc_rb_server_free_internal(p);
         | 
| 109 | 
            +
              grpc_ruby_shutdown();
         | 
| 110 | 
            +
            }
         | 
| 111 | 
            +
             | 
| 107 112 | 
             
            static const rb_data_type_t grpc_rb_server_data_type = {
         | 
| 108 113 | 
             
                "grpc_server",
         | 
| 109 114 | 
             
                {GRPC_RB_GC_NOT_MARKED,
         | 
| @@ -123,6 +128,7 @@ static const rb_data_type_t grpc_rb_server_data_type = { | |
| 123 128 |  | 
| 124 129 | 
             
            /* Allocates grpc_rb_server instances. */
         | 
| 125 130 | 
             
            static VALUE grpc_rb_server_alloc(VALUE cls) {
         | 
| 131 | 
            +
              grpc_ruby_init();
         | 
| 126 132 | 
             
              grpc_rb_server* wrapper = ALLOC(grpc_rb_server);
         | 
| 127 133 | 
             
              wrapper->wrapped = NULL;
         | 
| 128 134 | 
             
              wrapper->destroy_done = 0;
         | 
| @@ -142,8 +148,6 @@ static VALUE grpc_rb_server_init(VALUE self, VALUE channel_args) { | |
| 142 148 | 
             
              grpc_channel_args args;
         | 
| 143 149 | 
             
              MEMZERO(&args, grpc_channel_args, 1);
         | 
| 144 150 |  | 
| 145 | 
            -
              grpc_ruby_once_init();
         | 
| 146 | 
            -
             | 
| 147 151 | 
             
              cq = grpc_completion_queue_create_for_pluck(NULL);
         | 
| 148 152 | 
             
              TypedData_Get_Struct(self, grpc_rb_server, &grpc_rb_server_data_type,
         | 
| 149 153 | 
             
                                   wrapper);
         | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
| Binary file | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: grpc
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1. | 
| 4 | 
            +
              version: 1.19.0.pre1
         | 
| 5 5 | 
             
            platform: universal-darwin
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - gRPC Authors
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: src/ruby/bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2019- | 
| 11 | 
            +
            date: 2019-02-13 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: google-protobuf
         | 
| @@ -170,14 +170,14 @@ dependencies: | |
| 170 170 | 
             
                requirements:
         | 
| 171 171 | 
             
                - - "~>"
         | 
| 172 172 | 
             
                  - !ruby/object:Gem::Version
         | 
| 173 | 
            -
                    version: 0.7 | 
| 173 | 
            +
                    version: '0.7'
         | 
| 174 174 | 
             
              type: :development
         | 
| 175 175 | 
             
              prerelease: false
         | 
| 176 176 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 177 177 | 
             
                requirements:
         | 
| 178 178 | 
             
                - - "~>"
         | 
| 179 179 | 
             
                  - !ruby/object:Gem::Version
         | 
| 180 | 
            -
                    version: 0.7 | 
| 180 | 
            +
                    version: '0.7'
         | 
| 181 181 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 182 182 | 
             
              name: googleauth
         | 
| 183 183 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| @@ -187,7 +187,7 @@ dependencies: | |
| 187 187 | 
             
                    version: 0.5.1
         | 
| 188 188 | 
             
                - - "<"
         | 
| 189 189 | 
             
                  - !ruby/object:Gem::Version
         | 
| 190 | 
            -
                    version: '0. | 
| 190 | 
            +
                    version: '0.10'
         | 
| 191 191 | 
             
              type: :development
         | 
| 192 192 | 
             
              prerelease: false
         | 
| 193 193 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| @@ -197,7 +197,7 @@ dependencies: | |
| 197 197 | 
             
                    version: 0.5.1
         | 
| 198 198 | 
             
                - - "<"
         | 
| 199 199 | 
             
                  - !ruby/object:Gem::Version
         | 
| 200 | 
            -
                    version: '0. | 
| 200 | 
            +
                    version: '0.10'
         | 
| 201 201 | 
             
            description: Send RPCs from Ruby using GRPC
         | 
| 202 202 | 
             
            email: temiola@google.com
         | 
| 203 203 | 
             
            executables: []
         | 
| @@ -332,9 +332,9 @@ required_ruby_version: !ruby/object:Gem::Requirement | |
| 332 332 | 
             
                  version: 2.7.dev
         | 
| 333 333 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 334 334 | 
             
              requirements:
         | 
| 335 | 
            -
              - - " | 
| 335 | 
            +
              - - ">"
         | 
| 336 336 | 
             
                - !ruby/object:Gem::Version
         | 
| 337 | 
            -
                  version:  | 
| 337 | 
            +
                  version: 1.3.1
         | 
| 338 338 | 
             
            requirements: []
         | 
| 339 339 | 
             
            rubygems_version: 3.0.2
         | 
| 340 340 | 
             
            signing_key: 
         |