[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