summaryrefslogtreecommitdiff
path: root/buildbot/buildbot-source/build/lib/buildbot/locks.py
diff options
context:
space:
mode:
Diffstat (limited to 'buildbot/buildbot-source/build/lib/buildbot/locks.py')
-rw-r--r--buildbot/buildbot-source/build/lib/buildbot/locks.py89
1 files changed, 0 insertions, 89 deletions
diff --git a/buildbot/buildbot-source/build/lib/buildbot/locks.py b/buildbot/buildbot-source/build/lib/buildbot/locks.py
deleted file mode 100644
index a5ae40b93..000000000
--- a/buildbot/buildbot-source/build/lib/buildbot/locks.py
+++ /dev/null
@@ -1,89 +0,0 @@
-# -*- test-case-name: buildbot.test.test_locks -*-
-
-from twisted.python import log
-from twisted.internet import reactor, defer
-from buildbot import util
-
-class BaseLock:
- owner = None
- description = "<BaseLock>"
-
- def __init__(self, name):
- self.name = name
- self.waiting = []
-
- def __repr__(self):
- return self.description
-
- def isAvailable(self):
- log.msg("%s isAvailable: self.owner=%s" % (self, self.owner))
- return not self.owner
-
- def claim(self, owner):
- log.msg("%s claim(%s)" % (self, owner))
- assert owner is not None
- self.owner = owner
- log.msg(" %s is claimed" % (self,))
-
- def release(self, owner):
- log.msg("%s release(%s)" % (self, owner))
- assert owner is self.owner
- self.owner = None
- reactor.callLater(0, self.nowAvailable)
-
- def waitUntilAvailable(self, owner):
- log.msg("%s waitUntilAvailable(%s)" % (self, owner))
- assert self.owner, "You aren't supposed to call this on a free Lock"
- d = defer.Deferred()
- self.waiting.append((d, owner))
- return d
-
- def nowAvailable(self):
- log.msg("%s nowAvailable" % self)
- assert not self.owner
- if not self.waiting:
- return
- d,owner = self.waiting.pop(0)
- d.callback(self)
-
-class RealMasterLock(BaseLock):
- def __init__(self, name):
- BaseLock.__init__(self, name)
- self.description = "<MasterLock(%s)>" % (name,)
-
- def getLock(self, slave):
- return self
-
-class RealSlaveLock(BaseLock):
- def __init__(self, name):
- BaseLock.__init__(self, name)
- self.description = "<SlaveLock(%s)>" % (name,)
- self.locks = {}
-
- def getLock(self, slavebuilder):
- slavename = slavebuilder.slave.slavename
- if not self.locks.has_key(slavename):
- lock = self.locks[slavename] = BaseLock(self.name)
- lock.description = "<SlaveLock(%s)[%s] %d>" % (self.name,
- slavename,
- id(lock))
- self.locks[slavename] = lock
- return self.locks[slavename]
-
-
-# master.cfg should only reference the following MasterLock and SlaveLock
-# classes. They are identifiers that will be turned into real Locks later,
-# via the BotMaster.getLockByID method.
-
-class MasterLock(util.ComparableMixin):
- compare_attrs = ['name']
- lockClass = RealMasterLock
- def __init__(self, name):
- self.name = name
-
-class SlaveLock(util.ComparableMixin):
- compare_attrs = ['name']
- lockClass = RealSlaveLock
- def __init__(self, name):
- self.name = name
-