Allow machine-dependent arc4 locking
newlib: * libc/stdlib/arc4random.h: Remove Cygwin-specific locking code. Conditionalize arc4 locking. Check for _ARC4_LOCK_INIT being undefined to fall back to default implementation. cygwin: * include/machine/_arc4random.h: New file. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
@ -37,30 +37,17 @@
|
||||
#include <sys/lock.h>
|
||||
#include <signal.h>
|
||||
|
||||
__LOCK_INIT(static, _arc4random_mutex);
|
||||
#ifndef _ARC4_LOCK_INIT
|
||||
|
||||
#ifdef __CYGWIN__
|
||||
|
||||
extern int __isthreaded;
|
||||
|
||||
#define _ARC4_LOCK() \
|
||||
do { \
|
||||
if (__isthreaded) \
|
||||
__lock_acquire (_arc4random_mutex); \
|
||||
} while (0)
|
||||
|
||||
#define _ARC4_UNLOCK() \
|
||||
do { \
|
||||
if (__isthreaded) \
|
||||
__lock_release (_arc4random_mutex); \
|
||||
} while (0)
|
||||
#else
|
||||
#define _ARC4_LOCK_INIT __LOCK_INIT(static, _arc4random_mutex);
|
||||
|
||||
#define _ARC4_LOCK() __lock_acquire(_arc4random_mutex)
|
||||
|
||||
#define _ARC4_UNLOCK() __lock_release(_arc4random_mutex)
|
||||
|
||||
#endif
|
||||
#endif /* _ARC4_LOCK_INIT */
|
||||
|
||||
_ARC4_LOCK_INIT
|
||||
|
||||
#ifdef _ARC4RANDOM_DATA
|
||||
_ARC4RANDOM_DATA
|
||||
|
Reference in New Issue
Block a user