public E take() throws InterruptedException {
return poll(-1, TimeUnit.MILLISECONDS);
}
public E poll(long timeout, TimeUnit unit) throws InterruptedException {
PollRequest request = new PollRequest(name, unit.toMillis(timeout));
return invokeInterruptibly(request);
}