public ISynchronizationPoint < IOException > flush ( ) { if ( nbPrev == 0 ) return lastWrite ; while ( nbPrev < 4 ) previous [ nbPrev ++ ] = ' ' ; try { write ( Base64 . decode ( previous ) , null ) ; } catch ( IOException e ) { return new SynchronizationPoint <> ( e ) ; } return lastWrite ; }
Decode any pending bytes then return a synchronization point that will be unblocked once the last writing operation is done .