136 |
|
throw new InvalidQueueException("Requested queue "+queue+" does not exist"); |
137 |
|
} |
138 |
|
// block if the queue is empty |
139 |
< |
if (((LinkedList) _lists.get(queue)).size() == 0) { |
140 |
< |
synchronized(((LinkedList) _lists.get(queue))) { |
139 |
> |
synchronized(((LinkedList) _lists.get(queue))) { |
140 |
> |
if (((LinkedList) _lists.get(queue)).size() == 0) { |
141 |
|
try { ((LinkedList) _lists.get(queue)).wait(); } catch(Exception e) {} |
142 |
|
} |
143 |
|
} |
247 |
|
* |
248 |
|
* @return An integer to be passed to the get() method. |
249 |
|
*/ |
250 |
< |
public int getQueue() { |
250 |
> |
public synchronized int getQueue() { |
251 |
|
int pos = -1; |
252 |
|
for(int i=0; i < _lists.size(); i++) { |
253 |
|
if(_lists.get(i) == null) { |
271 |
|
* |
272 |
|
* @param queue The integer identifier for the queue, given by getQueue(). |
273 |
|
*/ |
274 |
< |
public void removeQueue(int queue) { |
274 |
> |
public synchronized void removeQueue(int queue) { |
275 |
|
_lists.set(queue, null); |
276 |
|
} |
277 |
|
|