That thread_specific_ptr was rubbish...

This commit is contained in:
lotodore
2007-03-02 00:34:50 +00:00
parent 991ec9e5e6
commit cb3c17573d
+5 -8
View File
@@ -23,7 +23,6 @@
#include <windows.h>
#include <wincrypt.h>
#include <boost/thread.hpp>
#include <core/rand.h>
class CryptData
@@ -43,21 +42,19 @@ public:
}
~CryptData()
{
if (cryptProvider) CryptReleaseContext(cryptProvider, 0);
if (cryptProvider)
CryptReleaseContext(cryptProvider, 0);
}
HCRYPTPROV cryptProvider;
};
static CryptData g_cryptData;
void
RandomBytes(unsigned char *buf, unsigned size)
{
static boost::thread_specific_ptr<CryptData> m_cryptData;
if (!m_cryptData.get())
m_cryptData.reset(new CryptData);
HCRYPTPROV provider = m_cryptData.get()->cryptProvider;
HCRYPTPROV provider = g_cryptData.cryptProvider;
if (provider)
::CryptGenRandom(provider, size, buf);