/* machine/_arc4random.h

This file is part of Cygwin.

This software is a copyrighted work licensed under the terms of the
Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
details. */

#ifndef _MACHINE_ARC4RANDOM_H
#define _MACHINE_ARC4RANDOM_H

extern int __isthreaded;

#define _ARC4_LOCK_INIT	__LOCK_INIT(static, _arc4random_mutex);

#define _ARC4_LOCK()				\
        do {					\
	  if (__isthreaded)			\
	    __lock_acquire (_arc4random_mutex);	\
        } while (0)

#define _ARC4_UNLOCK()				\
        do {					\
	  if (__isthreaded)			\
	    __lock_release (_arc4random_mutex);	\
        } while (0)

static inline void
_arc4random_forkdetect(void)
{
  extern int __in_forkee;

  if (__in_forkee)
    rs = NULL;
}
#define _ARC4RANDOM_FORKDETECT() _arc4random_forkdetect ()

#endif /* _MACHINE_ARC4RANDOM_H */
