[Erp5-report] r14175 - /erp5/trunk/utils/oood/testOoodHighLoad.py

nobody at svn.erp5.org nobody at svn.erp5.org
Tue Apr 24 02:13:34 CEST 2007


Author: bartek
Date: Tue Apr 24 02:13:33 2007
New Revision: 14175

URL: http://svn.erp5.org?rev=14175&view=rev
Log:
use threading.local instead of locks to make it threadsafe

Modified:
    erp5/trunk/utils/oood/testOoodHighLoad.py

Modified: erp5/trunk/utils/oood/testOoodHighLoad.py
URL: http://svn.erp5.org/erp5/trunk/utils/oood/testOoodHighLoad.py?rev=14175&r1=14174&r2=14175&view=diff
==============================================================================
--- erp5/trunk/utils/oood/testOoodHighLoad.py (original)
+++ erp5/trunk/utils/oood/testOoodHighLoad.py Tue Apr 24 02:13:33 2007
@@ -97,27 +97,27 @@
       take a random file from od? file list, randomly choose one target format
       from among allowed targets, generate, check if it returned
     """
-    try:
-      # acquire a lock to make sure another thread does not change target_list in the meantime
-      lock.acquire()
-      # make sure the file is there
-      while True:
-        fname = random.choice(file_names).strip()
-        if os.path.exists(fname):
-          break
-      target_list = sp.getAllowedTargetItemList(ext2mime[fname[-3:]])
-      tgt = random.choice(target_list)[:]
-      lock.release()
-      log('%s --> %s' % (fname,tgt[1]))
-      data = open(fname).read()
-      res = sp.run_generate(lib.asciify(fname), enc(data), None, tgt[0])
-      res = bool(res)
-      self.failUnless(res)
-    except Exception, e:
-      # release lock if exception was raised before it was released
-      lock.acquire(False)
-      lock.release()
-      raise
+    local = threading.local()
+    # make sure the file is there
+    while True:
+      local.fname = random.choice(file_names).strip()
+      if os.path.exists(local.fname):
+        break
+    local.target_list = sp.getAllowedTargetItemList(ext2mime[local.fname[-3:]])
+    if type(local.target_list) != type([]):
+      log('got error code: %s' % local.target_list)
+      self.failUnless(type(local.target_list) == type(4))
+      return 
+    local.tgt = random.choice(local.target_list)
+    log('%s --> %s' % (local.fname,local.tgt[1]))
+    local.data = open(local.fname).read()
+    local.res = sp.run_generate(lib.asciify(local.fname), enc(local.data), None, local.tgt[0])
+    if type(local.res) != type({}) or ('data' not in local.res.keys()) or ('meta' not in local.res.keys()):
+      log('got error code: %s' % local.res)
+      self.failUnless(type(local.res) == type(4))
+      return 
+    local.res = bool(local.res)
+    self.failUnless(local.res)
 
   def testRandomLoad(self):
     """




More information about the Erp5-report mailing list