[
https://issues.apache.org/jira/browse/MINIFICPP-877?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16846764#comment-16846764
]
Mr TheSegfault commented on MINIFICPP-877:
------------------------------------------
We can't assume that TLSSocket initializes first, hence my suggestion to
initialize via the singleton in a potential chain. TLSSocket may not be used at
any point, and hence initialization isn't needed. The curl curl initializer
will come before TLSSocket, so SSL_library_init will be called twice. I have
read that it is suggested that you init it once, but nothing indicates failure
otherwise ( even anecdotal tests support that theory ). The singleton idea only
comes into play with the unknown that SSL_library_init may be called more than
once. I'm suggesting that with the assumption that documentation is unclear. If
we can call that more than once than if curl initializes, a later use of
TLSSocket will be guaranteed to come after curl.
That is not how I read that documentation, It seems that CURL_GLOBAL_WIN32
instead of DEFAULT or ALL would NOT enable OpenSSL.
I don't quite understand this rationale: "I would prefer to avoid having
dependencies between initializers: all third party libraries that has these
kind of global initializers are designed to handle calling their _init and
_deinit functions more than once (and only deallocate when their refcounter
reaches 0)"
How does that preclude the capability to chain initializers? This only matters
if we shouldn't call SSL_library_init twice, and we need to ensure curl doesn't
call it and we don't call it.
> Create a thread safe way to call thirdparty global initializers
> ---------------------------------------------------------------
>
> Key: MINIFICPP-877
> URL: https://issues.apache.org/jira/browse/MINIFICPP-877
> Project: Apache NiFi MiNiFi C++
> Issue Type: New Feature
> Reporter: Daniel Bakai
> Assignee: Daniel Bakai
> Priority: Major
> Fix For: 0.7.0
>
> Time Spent: 10m
> Remaining Estimate: 0h
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)