Index: Lib/os.py =================================================================== RCS file: /cvsroot/python/python/dist/src/Lib/os.py,v retrieving revision 1.86 diff -u -p -r1.86 os.py --- Lib/os.py 17 Feb 2005 21:23:20 -0000 1.86 +++ Lib/os.py 4 Jul 2005 14:23:48 -0000 @@ -715,22 +715,18 @@ except NameError: # statvfs_result may n pass if not _exists("urandom"): - _urandomfd = None def urandom(n): """urandom(n) -> str Return a string of n random bytes suitable for cryptographic use. """ - global _urandomfd - if _urandomfd is None: - try: - _urandomfd = open("/dev/urandom", O_RDONLY) - except: - _urandomfd = NotImplementedError - if _urandomfd is NotImplementedError: + try: + _urandomfd = open("/dev/urandom", O_RDONLY) + except: raise NotImplementedError("/dev/urandom (or equivalent) not found") bytes = "" while len(bytes) < n: bytes += read(_urandomfd, n - len(bytes)) + close(_urandomfd) return bytes