David Schwartz wrote:

Suggestion:

This is a usage error.  Be sure to initialize openssl when your
application starts or
when your DLL is loaded.   Do not wait for the first thread to attempt
to make
a call to OpenSSL to initialize it.


That is not always possible. The process may become multi-threaded long before it has any idea it's going to do anything related to SSL. Consider, for example, a DLL that extends Acrobat to be able to contain embedded interactive elements that communicate back to a server using a protocol layered on top of SSL. Acrobat may well be multi-threaded before the document is loaded and it is known that its content requires activating this external module.

        DS


Thank you David. And thank everybody for the response. My program happens to be the
kind David described. It's a shell extension loaded by explorer.exe.


Aside from the way library get loaded, rand_win.c still seems to have some problem.
Here's what MSDN says about CreateToolhelp32Snapshot:


[QUOTE START]

To enumerate the heap or module states for all processes, specify TH32CS_SNAPALL
and set th32ProcessID to zero. Then, for each additional process in the snapshot,
call CreateToolhelp32Snapshot again, specifying its process identifier and the
TH32CS_SNAPHEAPLIST or TH32_SNAPMODULE value.


[QUOTE END]

I think it means one have to call snap N+1 times for N processes, while current
implementation calls it only once. Yet changing 1 to N+1 did not fix the problem.
My program still crashes from time to time on a slow and heavily loaded pc
at heap_next. I'll post again if I make any progress.


Cheers

Lei

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to