On Sun, May 04, 2014 at 06:07:23PM -0400, Geoffrey Thorpe wrote: > It's lazy-initialisation, so the context-setting (which is used in RSA and > DSA, not just DH) occurs the first time an operation is attempted on the > key. (Well, the first time an operation that needs to use the given > montgomery context within that key, I mean.) It's not that the two threads > "need to keep initialising it", it only gets initialised once, it's a > question of how to handle the case where threads are racing to be the one > that does the first-time initialisation. > > The current code simply serialises all threads that are trying to > initialise previously-uninitialised montgomery contexts, forcing them to > run one after another. And the math work is done while the lock is held. > The problem is that this lock isn't specific to the key or montgomery > context itself, it's global, so it serialises threads even if they're > working on completely unrelated keys and data structures! > > Does that clear it up? Or am I misunderstanding something?
It makes it more clear what is supposed to be going on. So if I understand it correctly, they use the same global lock, but it's actually a different montgomery context and so in the normal case things wouldn't be thrown away? Kurt ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager majord...@openssl.org