code: public static <T> BlockingQueue<T> leftShift(BlockingQueue<T> self, T value) throws InterruptedException {
          self.put(value);
          return self;
      }
docs: Overloads the left shift operator to provide an easy way to append
  objects to a BlockingQueue.
  In case of bounded queue the method will block till space in the queue become available
  <pre class="groovyTestCase">def list = new java.util.concurrent.LinkedBlockingQueue ()
  list &lt;&lt; 3 &lt;&lt; 2 &lt;&lt; 1
  assert list.iterator().collect{it} == [3,2,1]</pre>
  
  @param self  a Collection
  @param value an Object to be added to the collection.
  @return same collection, after the value was added to it.
  @since 1.7.1