[Checkins] SVN: gocept.zeoraid/branches/dirceu-distributed-write-calls/src/gocept/zeoraid/storage.py Trying a different approach

Dirceu Pereira Tiegs dirceutiegs at gmail.com
Tue Jul 8 07:04:03 EDT 2008


Log message for revision 88105:
  Trying a different approach

Changed:
  U   gocept.zeoraid/branches/dirceu-distributed-write-calls/src/gocept/zeoraid/storage.py

-=-
Modified: gocept.zeoraid/branches/dirceu-distributed-write-calls/src/gocept/zeoraid/storage.py
===================================================================
--- gocept.zeoraid/branches/dirceu-distributed-write-calls/src/gocept/zeoraid/storage.py	2008-07-08 10:59:08 UTC (rev 88104)
+++ gocept.zeoraid/branches/dirceu-distributed-write-calls/src/gocept/zeoraid/storage.py	2008-07-08 11:04:02 UTC (rev 88105)
@@ -638,17 +638,9 @@
         N-th storage.
 
         """
-        def _remote_apply_all_storages():
-            try:
-                args = argument_iterable.next()
-                reliable, result = self.__apply_storage(
+        def _remote_apply_storage():
+            self.reliable, self.result = self.__apply_storage(
                     name, method_name, args, kw, expect_connected)
-            except Exception, e:
-                exceptions.append(e)
-                raise
-            else:
-                if reliable:
-                    results.append(result)            
 
         results = []
         exceptions = []
@@ -668,9 +660,18 @@
                                if storage not in exclude]
 
         for name in applicable_storages:
-            t = threading.Thread(target=_remote_apply_all_storages)
-            t.start()
-            t.join(60)
+            try:
+                args = argument_iterable.next()
+                t = threading.Thread(target=_remote_apply_storage)
+                t.start()
+                t.join(60)
+                reliable, result = t.reliable, t.result
+            except Exception, e:
+                exceptions.append(e)
+                raise
+            else:
+                if reliable:
+                    results.append(result)
 
         # Analyse result consistency.
         consistent = True



More information about the Checkins mailing list