private void enqueue(E x){
  final Object[] items=this.items;
  items[putIndex]=x;
  if (++putIndex == items.length)   putIndex=0;
  count++;
  notEmpty.signal();
}

private void enqueue ( E x ) { final Object [ ] items = this . items ; items [ putIndex ] = x ; if ( ++ putIndex == items . length ) putIndex = 0 ; count ++ ; notEmpty . signal ( ) ; }
inserts element at current put position , advances , and signals . call only when holding lock .
