commit 4c6b17656a85cd97b9afe2a4b1564c04e60e34f5
parent 84102d9b1265e7e2f3ea35e394e9fd9a1e5e47fa
Author: Michael Savage <mikejsavage@gmail.com>
Date:   Tue, 21 Aug 2018 10:16:04 +0300
Merge branch 'master' of ssh://git.mikejsavage.co.uk/medfall
Diffstat:
3 files changed, 6 insertions(+), 20 deletions(-)
diff --git a/ggentropy.cc b/ggentropy.cc
@@ -30,7 +30,7 @@ bool ggentropy( void * buf, size_t n ) {
 	if( CryptAcquireContext( &provider, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT ) == 0 )
 		return false;
 
-	int ok = CryptGenRandom( provider, n, buf );
+	int ok = CryptGenRandom( provider, n, ( BYTE * ) buf );
 	CryptReleaseContext( provider, 0 );
 
 	return ok != 0;
diff --git a/unix_mutex.h b/unix_mutex.h
@@ -28,14 +28,6 @@ inline void mutex_lock( Mutex * mutex ) {
 	}
 }
 
-inline bool mutex_trylock( Mutex * mutex ) {
-	int ok = pthread_mutex_trylock( &mutex->mutex );
-	if( ok == 0 ) return true;
-	if( ok == EBUSY ) return false;
-
-	err( 1, "pthread_mutex_lock: %d", ok );
-}
-
 inline void mutex_unlock( Mutex * mutex ) {
 	int ok = pthread_mutex_unlock( &mutex->mutex );
 	if( ok != 0 ) {
diff --git a/win32_mutex.h b/win32_mutex.h
@@ -5,25 +5,19 @@
 #include "log.h"
 
 struct Mutex {
-	CRITICAL_SECTION cs;
+	SRWLOCK lock;
 };
 
 inline void mutex_init( Mutex * mutex ) {
-	InitializeCriticalSection( &mutex->cs );
+	InitializeSRWLock( &mutex->lock );
 }
 
-inline void mutex_destroy( Mutex * mutex ) {
-	DeleteCriticalSection( &mutex->cs );
-}
+inline void mutex_destroy( Mutex * mutex ) { }
 
 inline void mutex_lock( Mutex * mutex ) {
-	EnterCriticalSection( &mutex->cs );
-}
-
-inline bool mutex_trylock( Mutex * mutex ) {
-	return TryEnterCriticalSection( &mutex->cs ) != 0;
+	AcquireSRWLockExclusive( &mutex->lock );
 }
 
 inline void mutex_unlock( Mutex * mutex ) {
-	LeaveCriticalSection( &mutex->cs );
+	ReleaseSRWLockExclusive( &mutex->lock );
 }