[Checkins] SVN: gocept.zeoraid/branches/dirceu-distributed-write-calls/src/gocept/zeoraid/storage.py Trying to parallelize _apply_all_storages

Dirceu Pereira Tiegs dirceutiegs at gmail.com
Tue Jul 8 06:33:30 EDT 2008


Log message for revision 88102:
  Trying to parallelize _apply_all_storages

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:31:00 UTC (rev 88101)
+++ gocept.zeoraid/branches/dirceu-distributed-write-calls/src/gocept/zeoraid/storage.py	2008-07-08 10:33:28 UTC (rev 88102)
@@ -638,6 +638,18 @@
         N-th storage.
 
         """
+        def _remote_apply_all_storages():
+            try:
+                args = argument_iterable.next()
+                reliable, 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 = []
 
@@ -656,16 +668,9 @@
                                if storage not in exclude]
 
         for name in applicable_storages:
-            try:
-                args = argument_iterable.next()
-                reliable, result = self.__apply_storage(
-                    name, method_name, args, kw, expect_connected)
-            except Exception, e:
-                exceptions.append(e)
-                raise
-            else:
-                if reliable:
-                    results.append(result)
+            t = threading.Thread(target=_remote_apply_all_storages)
+            t.start()
+            t.join(60)
 
         # Analyse result consistency.
         consistent = True



More information about the Checkins mailing list