diff options
author | Brett Cannon <bcannon@gmail.com> | 2010-07-23 15:50:02 (GMT) |
---|---|---|
committer | Brett Cannon <bcannon@gmail.com> | 2010-07-23 15:50:02 (GMT) |
commit | 148724d39b082d9ea19297262d97984127594f14 (patch) | |
tree | c2ba277efb74e34f4980dd1c519f97ceaad9003d /Lib/threading.py | |
parent | f079c57c352d2348510aa090b11c8b643f8833db (diff) | |
download | cpython-148724d39b082d9ea19297262d97984127594f14.zip cpython-148724d39b082d9ea19297262d97984127594f14.tar.gz cpython-148724d39b082d9ea19297262d97984127594f14.tar.bz2 |
Rip out old testing code that was inlined in threading.
Partially closes issue 9346. Thanks Brian Brazil for the patch.
Diffstat (limited to 'Lib/threading.py')
-rw-r--r-- | Lib/threading.py | 88 |
1 files changed, 0 insertions, 88 deletions
diff --git a/Lib/threading.py b/Lib/threading.py index 2ca224e..dd6e91d 100644 --- a/Lib/threading.py +++ b/Lib/threading.py @@ -871,91 +871,3 @@ def _after_fork(): _active.clear() _active.update(new_active) assert len(_active) == 1 - - -# Self-test code - -def _test(): - - class BoundedQueue(_Verbose): - - def __init__(self, limit): - _Verbose.__init__(self) - self.mon = RLock() - self.rc = Condition(self.mon) - self.wc = Condition(self.mon) - self.limit = limit - self.queue = deque() - - def put(self, item): - self.mon.acquire() - while len(self.queue) >= self.limit: - self._note("put(%s): queue full", item) - self.wc.wait() - self.queue.append(item) - self._note("put(%s): appended, length now %d", - item, len(self.queue)) - self.rc.notify() - self.mon.release() - - def get(self): - self.mon.acquire() - while not self.queue: - self._note("get(): queue empty") - self.rc.wait() - item = self.queue.popleft() - self._note("get(): got %s, %d left", item, len(self.queue)) - self.wc.notify() - self.mon.release() - return item - - class ProducerThread(Thread): - - def __init__(self, queue, quota): - Thread.__init__(self, name="Producer") - self.queue = queue - self.quota = quota - - def run(self): - from random import random - counter = 0 - while counter < self.quota: - counter = counter + 1 - self.queue.put("%s.%d" % (self.name, counter)) - _sleep(random() * 0.00001) - - - class ConsumerThread(Thread): - - def __init__(self, queue, count): - Thread.__init__(self, name="Consumer") - self.queue = queue - self.count = count - - def run(self): - while self.count > 0: - item = self.queue.get() - print(item) - self.count = self.count - 1 - - NP = 3 - QL = 4 - NI = 5 - - Q = BoundedQueue(QL) - P = [] - for i in range(NP): - t = ProducerThread(Q, NI) - t.name = "Producer-%d" % (i+1) - P.append(t) - C = ConsumerThread(Q, NI*NP) - for t in P: - t.start() - _sleep(0.000001) - C.start() - for t in P: - t.join() - C.join() - -if __name__ == '__main__': - _test() |