--- jsr166/src/jsr166y/TransferQueue.java 2008/07/25 18:11:53 1.3 +++ jsr166/src/jsr166y/TransferQueue.java 2009/01/05 03:40:08 1.4 @@ -9,23 +9,23 @@ import java.util.concurrent.*; /** * A {@link BlockingQueue} in which producers may wait for consumers - * to receive elements. A TransferQueue may be useful for + * to receive elements. A {@code TransferQueue} may be useful for * example in message passing applications in which producers - * sometimes (using method transfer) await receipt of - * elements by consumers invoking take or poll, - * while at other times enqueue elements (via method put) + * sometimes (using method {@code transfer}) await receipt of + * elements by consumers invoking {@code take} or {@code poll}, + * while at other times enqueue elements (via method {@code put}) * without waiting for receipt. Non-blocking and time-out versions of - * tryTransfer are also available. A TransferQueue may also - * be queried via hasWaitingConsumer whether there are any + * {@code tryTransfer} are also available. A TransferQueue may also + * be queried via {@code hasWaitingConsumer} whether there are any * threads waiting for items, which is a converse analogy to a - * peek operation + * {@code peek} operation. * - *

Like any BlockingQueue, a TransferQueue may be - * capacity bounded. If so, an attempted transfer operation + *

Like any {@code BlockingQueue}, a {@code TransferQueue} may be + * capacity bounded. If so, an attempted {@code transfer} operation * may initially block waiting for available space, and/or * subsequently block waiting for reception by a consumer. Note that * in a queue with zero capacity, such as {@link SynchronousQueue}, - * put and transfer are effectively synonymous. + * {@code put} and {@code transfer} are effectively synonymous. * *

This interface is a member of the * @@ -38,12 +38,12 @@ import java.util.concurrent.*; public interface TransferQueue extends BlockingQueue { /** * Transfers the specified element if there exists a consumer - * already waiting to receive it, otherwise returning false + * already waiting to receive it, otherwise returning {@code false} * without enqueuing the element. * * @param e the element to transfer - * @return true if the element was transferred, else - * false + * @return {@code true} if the element was transferred, else + * {@code false} * @throws ClassCastException if the class of the specified element * prevents it from being added to this queue * @throws NullPointerException if the specified element is null @@ -55,7 +55,7 @@ public interface TransferQueue extend /** * Inserts the specified element into this queue, waiting if * necessary for space to become available and the element to be - * dequeued by a consumer invoking take or poll. + * dequeued by a consumer invoking {@code take} or {@code poll}. * * @param e the element to transfer * @throws InterruptedException if interrupted while waiting, @@ -72,14 +72,14 @@ public interface TransferQueue extend * Inserts the specified element into this queue, waiting up to * the specified wait time if necessary for space to become * available and the element to be dequeued by a consumer invoking - * take or poll. + * {@code take} or {@code poll}. * * @param e the element to transfer * @param timeout how long to wait before giving up, in units of - * unit - * @param unit a TimeUnit determining how to interpret the - * timeout parameter - * @return true if successful, or false if + * {@code unit} + * @param unit a {@code TimeUnit} determining how to interpret the + * {@code timeout} parameter + * @return {@code true} if successful, or {@code false} if * the specified waiting time elapses before completion, * in which case the element is not enqueued. * @throws InterruptedException if interrupted while waiting, @@ -94,23 +94,24 @@ public interface TransferQueue extend throws InterruptedException; /** - * Returns true if there is at least one consumer waiting to - * dequeue an element via take or poll. The - * return value represents a momentary state of affairs. - * @return true if there is at least one waiting consumer. + * Returns {@code true} if there is at least one consumer waiting + * to dequeue an element via {@code take} or {@code poll}. + * The return value represents a momentary state of affairs. + * + * @return {@code true} if there is at least one waiting consumer */ boolean hasWaitingConsumer(); - /** * Returns an estimate of the number of consumers waiting to - * dequeue elements via take or poll. The return + * dequeue elements via {@code take} or {@code poll}. The return * value is an approximation of a momentary state of affairs, that * may be inaccurate if consumers have completed or given up * waiting. The value may be useful for monitoring and heuristics, * but not for synchronization control. Implementations of this * method are likely to be noticeably slower than those for - * hasWaitingConsumer. + * {@link #hasWaitingConsumer}. + * * @return the number of consumers waiting to dequeue elements */ int getWaitingConsumerCount();