Zhou Zheng Sheng has posted comments on this change.
Change subject: Adding threads limitation to misc.tmap ......................................................................
Patch Set 2: I would prefer that you didn't submit this
(3 inline comments)
.................................................... File vdsm/storage/misc.py Line 1227: if maxthreads < 1 and maxthreads != UNLIMITED_THREADS: Line 1228: raise ValueError("Wrong input passed to function tmap: %s", maxthreads) Line 1229: Line 1230: resultsDict = {} Line 1231: error = [None] List is used here mainly because itself is thread-safe. Do I get your idea, Yaniv? If yes, a comment can be added here for explanation. Line 1232: Line 1233: def wrapper(f, arg, index): Line 1234: try: Line 1235: resultsDict[index] = f(arg)
Line 1252: if threadsQueue.full(): Line 1253: # Wait for the first unfinished thread in list to finish if we Line 1254: # have already initiate all possible thread's slots (maxthreads) Line 1255: if threadsQueue.empty(): Line 1256: raise RuntimeError("Queue is empty") I notice that threadsQueue is accessed only by the current thread, it's not possible to be full() and empty() at the same time. Why do you add this check? Line 1257: else: Line 1258: threadsQueue.get_nowait().join() Line 1259: t = threading.Thread(target=wrapper, args=(func, arg, i)) Line 1260: threadsQueue.put_nowait(t)
Line 1267: for i, result in resultsDict.iteritems(): Line 1268: results[i] = result Line 1269: Line 1270: if error[0] is not None: Line 1271: raise error[0] Maybe you can exchange the order of code snippet in line 1270-1271 with line 1266-1268. Line 1272: Line 1273: return tuple(results) Line 1274: Line 1275:
-- To view, visit http://gerrit.ovirt.org/8858 To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: comment Gerrit-Change-Id: I07845bfd78b9215e8994ac2ebe46a7ff78c85625 Gerrit-PatchSet: 2 Gerrit-Project: vdsm Gerrit-Branch: master Gerrit-Owner: Yaniv Bronhaim ybronhei@redhat.com Gerrit-Reviewer: Saggi Mizrahi smizrahi@redhat.com Gerrit-Reviewer: Shu Ming shuming@linux.vnet.ibm.com Gerrit-Reviewer: Yaniv Bronhaim ybronhei@redhat.com Gerrit-Reviewer: Zhou Zheng Sheng zhshzhou@linux.vnet.ibm.com