summaryrefslogtreecommitdiffstats
path: root/Lib/uuid.py
diff options
context:
space:
mode:
authorGeorg Brandl <georg@python.org>2007-08-24 06:10:01 (GMT)
committerGeorg Brandl <georg@python.org>2007-08-24 06:10:01 (GMT)
commit8ec5754086a75aaf6febd38be2c3b0b8a0921cc4 (patch)
treefa0cfa5e27ce24ba3887ead13bc32d1a3825c69c /Lib/uuid.py
parent1042a4d71966b597141537d247e1d1e69e42d906 (diff)
downloadcpython-8ec5754086a75aaf6febd38be2c3b0b8a0921cc4.zip
cpython-8ec5754086a75aaf6febd38be2c3b0b8a0921cc4.tar.gz
cpython-8ec5754086a75aaf6febd38be2c3b0b8a0921cc4.tar.bz2
uuid creation is now threadsafe, backport from py3k rev. 57375.
Diffstat (limited to 'Lib/uuid.py')
-rw-r--r--Lib/uuid.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/uuid.py b/Lib/uuid.py
index e21b070..e1b2f4b 100644
--- a/Lib/uuid.py
+++ b/Lib/uuid.py
@@ -393,7 +393,6 @@ def _netbios_getnode():
_uuid_generate_random = _uuid_generate_time = _UuidCreate = None
try:
import ctypes, ctypes.util
- _buffer = ctypes.create_string_buffer(16)
# The uuid_generate_* routines are provided by libuuid on at least
# Linux and FreeBSD, and provided by libc on Mac OS X.
@@ -426,11 +425,13 @@ except:
def _unixdll_getnode():
"""Get the hardware address on Unix using ctypes."""
+ _buffer = ctypes.create_string_buffer(16)
_uuid_generate_time(_buffer)
return UUID(bytes=_buffer.raw).node
def _windll_getnode():
"""Get the hardware address on Windows using ctypes."""
+ _buffer = ctypes.create_string_buffer(16)
if _UuidCreate(_buffer) == 0:
return UUID(bytes=_buffer.raw).node
@@ -478,6 +479,7 @@ def uuid1(node=None, clock_seq=None):
# When the system provides a version-1 UUID generator, use it (but don't
# use UuidCreate here because its UUIDs don't conform to RFC 4122).
+ _buffer = ctypes.create_string_buffer(16)
if _uuid_generate_time and node is clock_seq is None:
_uuid_generate_time(_buffer)
return UUID(bytes=_buffer.raw)
@@ -514,6 +516,7 @@ def uuid4():
"""Generate a random UUID."""
# When the system provides a version-4 UUID generator, use it.
+ _buffer = ctypes.create_string_buffer(16)
if _uuid_generate_random:
_uuid_generate_random(_buffer)
return UUID(bytes=_buffer.raw)