wininet(1/3): Only initialize SSL_CTX once
Juan Lang
juan.lang at gmail.com
Tue Sep 29 09:15:47 CDT 2009
Hi Hans,
> The bug reporter sees long delays between torrents starting up after
> applying these patches, which makes we wonder if the ssl lock effectively
> serializes secure https requests?
There isn't a single SSL lock. There's an interlocked exchange for
assigning SSL_CTX, which should only be created once except in a race
between threads. There's a critical section to protect against two
threads initializing the SSL library at the same time. Finally, there
are a number of SSL locks (CRYPTO_num_locks() many, specifically) that
OpenSSL uses. When I was debugging it, there are at least 16 of them.
So I don't think serialization of locks is the root cause of the
slowdown.
> Would patch 1 and 3 not be sufficient to fix the utorrent crash?
I don't think so. Other apps have had similar crashes with the
equivalent of patch 2 not applied, and the OpenSSL man page warns of
random crashes due to failing to implement and set these callbacks.
--Juan
More information about the wine-devel
mailing list