[Help-gnutls] multiple "gnutlses" in single binary
nmav at gnutls.org
Fri Jun 20 17:54:45 CEST 2008
Arkadiusz Miskiewicz wrote:
> Take a look at this example.
> There is one program (let be it php interpreter) that is able to load external
> modules (so modules).
> Now we have two external modules - curl and postgresql . Assume both curl
> and postgresql use external libraries (libcurl and libpq) that internally
> also use gnutls.
> Both these libraries initialize and deinitialize gnutls on it's own.
> Separately they work fine.
> Now it php loads them both at the same time then gnutls initialization happens
> twice (once called by curl module and second time by postgres module) and the
> same happens for deinitialization. In openssl for example double deinit
> causes segfault and is now allowed (a real problem with php + modules btw).
> How things look in gnutls? I assume init/deinit also can't be called multiple
> times safely, right?
No there is no problem as long as they are called in a thread safe way.
More information about the Gnutls-help