Преглед на файлове

In threaded programs, more than one thread can try to add the same object at
the same time and this can cause os.mkdir to fail.

Bruce Duncan преди 15 години
родител
ревизия
b4a7c9ee38
променени са 1 файла, в които са добавени 4 реда и са изтрити 1 реда
  1. 4 1
      dulwich/object_store.py

+ 4 - 1
dulwich/object_store.py

@@ -470,8 +470,11 @@ class DiskObjectStore(PackBasedObjectStore):
         :param obj: Object to add
         """
         dir = os.path.join(self.path, obj.id[:2])
-        if not os.path.isdir(dir):
+        try:
             os.mkdir(dir)
+        except OSError, e:
+            if e.errno != errno.EEXIST:
+                raise
         path = os.path.join(dir, obj.id[2:])
         if os.path.exists(path):
             return # Already there, no need to write again