aboutsummaryrefslogtreecommitdiff
path: root/util.cpp
diff options
context:
space:
mode:
authors_nakamoto <s_nakamoto@1a98c847-1fd6-4fd8-948a-caf3550aa51b>2009-10-29 05:55:56 +0000
committers_nakamoto <s_nakamoto@1a98c847-1fd6-4fd8-948a-caf3550aa51b>2009-10-29 05:55:56 +0000
commitdc73b326f97f2ed7ec7b7e8485ebc9eb46e05ddb (patch)
tree28007352d7516f8e9f65c67f24546651df3a65a4 /util.cpp
parentdd519206a684c772a4a06ceecc87c665ad09d8be (diff)
CCriticalSection using wxWidgets instead of Windows OS calls
git-svn-id: https://bitcoin.svn.sourceforge.net/svnroot/bitcoin/trunk@19 1a98c847-1fd6-4fd8-948a-caf3550aa51b
Diffstat (limited to 'util.cpp')
-rw-r--r--util.cpp20
1 files changed, 12 insertions, 8 deletions
diff --git a/util.cpp b/util.cpp
index 6ba84a516d..bdf899d78e 100644
--- a/util.cpp
+++ b/util.cpp
@@ -13,14 +13,14 @@ bool fPrintToConsole = false;
// Init openssl library multithreading support
-static HANDLE* lock_cs;
+static wxMutex** ppmutexOpenSSL;
-void win32_locking_callback(int mode, int type, const char* file, int line)
+void win32_locking_callback(int mode, int i, const char* file, int line)
{
if (mode & CRYPTO_LOCK)
- WaitForSingleObject(lock_cs[type], INFINITE);
+ ppmutexOpenSSL[i]->Lock();
else
- ReleaseMutex(lock_cs[type]);
+ ppmutexOpenSSL[i]->Unlock();
}
// Init
@@ -30,9 +30,9 @@ public:
CInit()
{
// Init openssl library multithreading support
- lock_cs = (HANDLE*)OPENSSL_malloc(CRYPTO_num_locks() * sizeof(HANDLE));
+ ppmutexOpenSSL = (wxMutex**)OPENSSL_malloc(CRYPTO_num_locks() * sizeof(wxMutex*));
for (int i = 0; i < CRYPTO_num_locks(); i++)
- lock_cs[i] = CreateMutex(NULL,FALSE,NULL);
+ ppmutexOpenSSL[i] = new wxMutex();
CRYPTO_set_locking_callback(win32_locking_callback);
// Seed random number generator with screen scrape and other hardware sources
@@ -46,8 +46,8 @@ public:
// Shutdown openssl library multithreading support
CRYPTO_set_locking_callback(NULL);
for (int i =0 ; i < CRYPTO_num_locks(); i++)
- CloseHandle(lock_cs[i]);
- OPENSSL_free(lock_cs);
+ delete ppmutexOpenSSL[i];
+ OPENSSL_free(ppmutexOpenSSL);
}
}
instance_of_cinit;
@@ -55,6 +55,10 @@ instance_of_cinit;
+
+
+
+
void RandAddSeed()
{
// Seed with CPU performance counter