@GuardedBy("evictionLock") void drainWriteBuffer(){
  for (int i=0; i < WRITE_BUFFER_DRAIN_THRESHOLD; i++) {
    final Runnable task=writeBuffer.poll();
    if (task == null) {
      break;
    }
    task.run();
  }
}

@ GuardedBy ( "evictionLock" ) void drainWriteBuffer ( ) { for ( int i = 0 ; i < WRITE_BUFFER_DRAIN_THRESHOLD ; i ++ ) { final Runnable task = writeBuffer . poll ( ) ; if ( task == null ) { break ; } task . run ( ) ; } }
drains the read buffer up to an amortized threshold .
