On Mon, 27 Feb 2023 20:09:12 GMT, Martin Buchholz <mar...@openjdk.org> wrote:

>> Here's my attempt:
>> 
>> 
>>  * An unbounded {@linkplain BlockingQueue blocking queue} of {@link Delayed}
>>  * elements, in which an element generally becomes eligible for removal when 
>> its
>>  * delay has expired.
>>  *
>>  * <p>An element is considered <em>expired</em> when its {@code
>>  * getDelay(TimeUnit.NANOSECONDS)} method would return a value less than or
>>  * equal to zero.
>>  *
>>  * <p>An element is considered the <em>head</em> of the queue if it is the
>>  * element with the earliest expiration time, whether in the past or the 
>> future,
>>  * if there is such an element.
>>  *
>>  * <p>An element is considered the <em>expired head</em> of the queue if it 
>> is
>>  * the <em>expired</em> element with the earliest expiration time in the
>>  * past, if there is such an element.
>>  * The <em>expired head</em>, when present, is also the <em>head</em>.
>>  *
>>  * <p>While this class implements the {@code BlockingQueue} interface, it
>>  * intentionally violates the general contract of {@code BlockingQueue}, in 
>> that
>>  * the following methods disregard the presence of unexpired elements and 
>> only
>>  * ever remove the <em>expired head</em>:
>>  *
>>  * <ul>
>>  * <li> {@link #poll()}
>>  * <li> {@link #poll(long,TimeUnit)}
>>  * <li> {@link #take()}
>>  * <li> {@link #remove()}
>>  * </ul>
>>  *
>>  * <p>All other methods operate on both expired and unexpired elements.  For
>>  * example, the {@code size} method returns the count of all elements.  
>> Method
>>  * {@link peek()} may return the non-null <em>head</em> even when {@code
>>  * take()} would block waiting for that element to expire.
>>  *
>>  * <p>This queue does not permit null elements.
>
>> @Martin-Buchholz Martin, how would you like to proceed with your proposed 
>> wording, would you prefer a suggested edit to this PR, do a separate PR, or 
>> otherwise? /cc @AlanBateman (any recommendation, Alan? thinking )
> 
> Talked me into it - I will dust off my github/skara skillz and make a new PR. 
>  
> 
> I wonder if there's now a way to override javadoc for remove() without 
> creating a new method body.

@Martin-Buchholz I guess `remove` could be overridden and just delegate to 
`super`?

-------------

PR: https://git.openjdk.org/jdk/pull/12729

Reply via email to