> If we say that the call SSL_library_init() would initialze some data > structures which have process scope and are initialized only once. > > In such case what is the problem in having a *single* function > which exacly > cleans up those data structures at the time of process termination?
See my other posts, particularly this section: "Again, you can't put everything last. And anything that goes after something else cannot touch what has already been cleaned up unless you add code to make that work at the point where you touch the thing that might be cleaned up. And that point is usually *not* the cleanup code. The perfect solution involves a lot of very complex dependency work to make absolutely sure that nothing can be used after it's cleaned up. What if the cleanup code for A might need B, and the cleanup code for B might need C, and the cleanup code for C might need A? Do you un-cleanup A? Then when do you clean it back up again? Might you never terminate? There are many examples. Engineering a library for perfect cleanup is a *major* design requirement and if you insist on it, things will have to give in other areas." The problem, in a nutshell, is dependencies. DS ______________________________________________________________________ OpenSSL Project http://www.openssl.org Development Mailing List openssl-dev@openssl.org Automated List Manager [EMAIL PROTECTED]