public E take ( ) throws InterruptedException { E e = transferer . transfer ( null , false , 0 ) ; if ( e != null ) return e ; Thread . interrupted ( ) ; throw new InterruptedException ( ) ; }
Retrieves and removes the head of this queue waiting if necessary for another thread to insert it .