@SuppressWarnings("unchecked") public synchronized T dequeueTask() throws InterruptedException {
  while (_data.isEmpty()) {
    if (!_closedInput)     wait();
 else     return (T)NO_MORE_TASKS;
  }
  T t=_data.removeFirst();
  notify();
  return t;
}

@ SuppressWarnings ( "unchecked" ) public synchronized T dequeueTask ( ) throws InterruptedException { while ( _data . isEmpty ( ) ) { if ( ! _closedInput ) wait ( ) ; else return ( T ) NO_MORE_TASKS ; } T t = _data . removeFirst ( ) ; notify ( ) ; return t ; }
synchronized read and delete from the top of the fifo queue .
