1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 try:
29 import thread
30
31
32
33 from Queue import *
34 except:
35
36
38 "Exception raised by Queue.get(block=0)/get_nowait()."
39 pass
40
43 """Initialize a queue object with a given maximum size.
44
45 If maxsize is <= 0, the queue size is infinite.
46 """
47 assert maxsize <= 0
48 self._init(maxsize)
49
51 """Return the approximate size of the queue (not reliable!)."""
52 n = self._qsize()
53 return n
54
56 """Return 1 if the queue is empty, 0 otherwise (not reliable!)."""
57 n = self._empty()
58 return n
59
61 """Return 1 if the queue is full, 0 otherwise (not reliable!)."""
62 n = self._full()
63 return n
64
65 - def put(self, item, block=1):
66 """Put an item into the queue.
67
68 If optional arg 'block' is 1 (the default), block if
69 necessary until a free slot is available. Otherwise (block
70 is 0), put an item on the queue if a free slot is immediately
71 available, else raise the Full exception.
72 """
73 self._put(item)
74
76 """Put an item into the queue without blocking.
77
78 Only enqueue the item if a free slot is immediately available.
79 Otherwise raise the Full exception.
80 """
81 return self.put(item, 0)
82
83 - def get(self, block=1):
84 """Remove and return an item from the queue.
85
86 If optional arg 'block' is 1 (the default), block if
87 necessary until an item is available. Otherwise (block is 0),
88 return an item if one is immediately available, else raise the
89 Empty exception.
90 """
91 if not block and not self.queue:
92 raise Empty
93 item = self._get()
94 return item
95
97 """Remove and return an item from the queue without blocking.
98
99 Only get an item if one is immediately available. Otherwise
100 raise the Empty exception.
101 """
102 return self.get(0)
103
104
105
106
107
108
109 - def _init(self, maxsize):
110 self.maxsize = maxsize
111 self.queue = []
112
115
116
118 return not self.queue
119
120
122 return self.maxsize > 0 and len(self.queue) == self.maxsize
123
124
125 - def _put(self, item):
127
128
133