diff --git a/Lib/plat-mac/macostools.py b/Lib/plat-mac/macostools.py index d7724fa271b..337cc7f1f1d 100644 --- a/Lib/plat-mac/macostools.py +++ b/Lib/plat-mac/macostools.py @@ -62,7 +62,14 @@ def mkdirs(dst): if os.sep == ':' and not ':' in head: head = head + ':' mkdirs(head) - os.mkdir(dst, 0777) + + try: + os.mkdir(dst, 0777) + except OSError, e: + # be happy if someone already created the path + if e.errno != errno.EEXIST: + raise + def touched(dst): """Tell the finder a file has changed. No-op on MacOSX.""" diff --git a/Misc/NEWS b/Misc/NEWS index 03cc72713fa..040ed5c3b3b 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -235,6 +235,9 @@ Library - Issue #1737832 : plat-mac/EasyDialog.py no longer uses the broken aepack module. +- Issue #1149804: macostools.mkdirs now even works when another process + creates one of the needed subdirectories. + Tools/Demos -----------