--
You received this message because you are subscribed to a topic in the Google Groups "grpc.io" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/grpc-io/Z48vpXRnJaw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to grpc-io+u...@googlegroups.com.
To post to this group, send email to grp...@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/3df13436-d771-4450-85c3-d2683b08e976%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/8821745f-9b23-4e3e-b4cf-b88bce513b4b%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/d178eff0-8225-4a0b-b63f-ac15afe425e3%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/221ffdb6-aa2c-457d-8772-32ace46173dc%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CACcm8_i7f6HdGG3G72p_FN2UqwyUzaDyDVKGE3oNP1Xbi9GSwA%40mail.gmail.com.
To unsubscribe from this group and all its topics, send an email to grpc-io+unsubscribe@googlegroups.com.
To post to this group, send email to grp...@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/221ffdb6-aa2c-457d-8772-32ace46173dc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "grpc.io" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/grpc-io/Z48vpXRnJaw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to grpc-io+unsubscribe@googlegroups.com.
To post to this group, send email to grp...@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CACcm8_i7f6HdGG3G72p_FN2UqwyUzaDyDVKGE3oNP1Xbi9GSwA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
if (!CRYPTO_get_locking_callback()) {int num_locks = CRYPTO_num_locks();GPR_ASSERT(num_locks > 0);g_openssl_mutexes = static_cast<gpr_mu*>(gpr_malloc(static_cast<size_t>(num_locks) * sizeof(gpr_mu)));for (int i = 0; i < num_locks; i++) {gpr_mu_init(&g_openssl_mutexes[i]);}CRYPTO_set_locking_callback(openssl_locking_cb);CRYPTO_set_id_callback(openssl_thread_id_cb);} else {gpr_log(GPR_INFO, "OpenSSL callback has already been set.");}
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/221ffdb6-aa2c-457d-8772-32ace46173dc%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to a topic in the Google Groups "grpc.io" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/grpc-io/Z48vpXRnJaw/unsubscribe.
To unsubscribe from this group and all its topics, send an email to grpc-io+u...@googlegroups.com.
To post to this group, send email to grp...@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/CACcm8_i7f6HdGG3G72p_FN2UqwyUzaDyDVKGE3oNP1Xbi9GSwA%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--Sincerely yours,
Michael.--Sincerely yours,
Michael.
Afaik, all existing OpenSSL versions can't be safely initialized in the way you do it. I already explained why -- there is no point going through it again.
The only proper way dealing with this (that I know) -- declare that your library uses OpenSSL and leave end user to initialize it. If your user is snother library writer -- he'll have to do the same. Only "top-lvl user" will know for sure when and how to properly in it those libs. Same for libcurl/etc. I think the proper term for this is "global state poisoning" -- basically because you use OpenSSL and it has global state that needs to initialized -- it poisons you and now you have global state that needs to be initialized. And there is no way to auto-initialize it in such way that it works in every circumstance.
I know I can contribute, but my point that to solve it properly you'll have to break exiting clients. I doubt you'll accept PR like that.
To unsubscribe from this group and all its topics, send an email to grpc-io+unsubscribe@googlegroups.com.
To post to this group, send email to grp...@googlegroups.com.
Visit this group at https://groups.google.com/group/grpc-io.
To view this discussion on the web visit https://groups.google.com/d/msgid/grpc-io/73d94255-1f90-418f-92ec-524e9cf6f2d6%40googlegroups.com.