[Uludag-commits] r15292 - trunk/staj-projeleri/buildfarm/helpers
uludag-commits at pardus.org.tr
uludag-commits at pardus.org.tr
5 Eyl 2007 Çar 10:57:00 EEST
Author: ozan.caglayan
Date: Wed Sep 5 10:57:00 2007
New Revision: 15292
Modified:
trunk/staj-projeleri/buildfarm/helpers/qmanager.py
Log:
removed an unnecessary call to dependency resolver, a more consistent buildPackages().
Modified: trunk/staj-projeleri/buildfarm/helpers/qmanager.py
=================================================================
--- trunk/staj-projeleri/buildfarm/helpers/qmanager.py (original)
+++ trunk/staj-projeleri/buildfarm/helpers/qmanager.py Wed Sep 5 10:57:00 2007
@@ -36,29 +36,31 @@
def __init__(self):
- self.locks = {"waitQueue" : FileLock("%s/waitQueue.lock" % config.workDir),
- "workQueue" : FileLock("%s/workQueue.lock" % config.workDir),
- "build" : FileLock("%s/build.lock" % config.workDir)}
+ self.locks = {"waitQueue" : FileLock("%s/.waitqueue.lock" % config.workDir),
+ "workQueue" : FileLock("%s/.workqueue.lock" % config.workDir),
+ "build" : FileLock("%s/.build.lock" % config.workDir)}
self.workQueue = []
self.waitQueue = []
-
+
+ self.__checkQueues__()
+
+ def __del__(self):
+ self.__serialize__(self.waitQueue, "waitQueue")
+ self.__serialize__(self.workQueue, "workQueue")
+
+ def __checkQueues__(self):
+ # If waitQueue contains some packages, this method
+ # moves them to the workQueue and calls dependency resolver on it.
self.__deserialize__(self.workQueue, "workQueue")
self.__deserialize__(self.waitQueue, "waitQueue")
-
+
if len(self.waitQueue):
self.workQueue += self.waitQueue
self.waitQueue = []
- else:
- print self.waitQueue
- self.waitQueue = dependency.DependencyResolver(self.waitQueue).resolveDependencies()
-
+
self.workQueue = dependency.DependencyResolver(self.workQueue).resolveDependencies()
self.__del__()
-
- def __del__(self):
- self.__serialize__(self.waitQueue, "waitQueue")
- self.__serialize__(self.workQueue, "workQueue")
def __serialize__(self, queueName, fileName):
self.locks[fileName].lock()
@@ -106,10 +108,10 @@
# the lock and raise exception if unsuccessful.
f = sys._getframe(depth)
methodName = f.f_code.co_name
- print methodName
if methodName == "_dispatch":
try:
self.locks["build"].lock(timeout=0)
+ print "brdaim"
return True
except:
return False
@@ -125,12 +127,15 @@
return self.waitQueue
def removeFromWaitQueue(self, pspec):
+ if not self.__tryToLock__(2):
+ return 1
self.__initWaitQueueFromFile__()
if self.waitQueue.__contains__(pspec):
self.waitQueue.remove(pspec)
self.__serialize__(self.waitQueue, "waitQueue")
- return True
- return False
+ return 0
+ self.locks['build'].unlock()
+ return 2
def removeFromWorkQueue(self, pspec):
if not self.__tryToLock__(2):
@@ -139,9 +144,9 @@
if self.workQueue.__contains__(pspec):
self.workQueue.remove(pspec)
self.__serialize__(self.workQueue, "workQueue")
- self.locks['build'].unlock()
+ #self.locks['build'].unlock()
return 0
- self.locks['build'].unlock()
+ #self.locks['build'].unlock()
return 2
def appendToWorkQueue(self, pspec, checkIfExists=False):
@@ -175,11 +180,13 @@
return False
def transferToWorkQueue(self, pspec):
+ if not self.__tryToLock__(2):
+ return 1
self.__initWaitQueueFromFile__()
if self.waitQueue.__contains__(pspec) and self.appendToWorkQueue(pspec):
self.removeFromWaitQueue(pspec)
return 0
- return 1
+ return 2
def transferToWaitQueue(self, pspec):
if not self.__tryToLock__(2):
@@ -224,6 +231,7 @@
sys.excepthook = self.__handle_exception__
+ self.__checkQueues__()
queue = shallowCopy(self.getWorkQueue())
if len(queue) == 0:
@@ -285,9 +293,6 @@
if self.getWaitQueue():
# mailer.info(_("Queue finished with problems and those packages couldn't be compiled:\n\n%s\n") % "\n".join(self.getWaitQueue()))
- self.workQueue += self.waitQueue
- self.waitQueue = []
- self.__del__()
self.locks["build"].unlock()
return 3
else:
Uludag-commits mesaj listesiyle ilgili
daha fazla bilgi