docs: function processCallback(err, buf, encoding, done) {
  		// When doing sync writes + emitting an errror it can happen that
  		// Remove the error listener on the next tick if an error where fired
  		// to avoid unwanted error throwing
  		if (err) {
  			setImmediate(function () {
  				_this.removeListener('error', _state.errorHandler);
  			});
  		} else {
  			_this.removeListener('error', _state.errorHandler);
  		}
  
  		_state.sent = true;
  
  		cb(err, buf, encoding, function (err, buf, encoding) {
  			if (err) {
  				setImmediate(function () {
  					_this.emit('error', err);
  				});
  				return;
  			}
  
  			if (!buf) {
  				done();
  				return;
  			}
  
  			_state.manager.programPush(buf, encoding, done);
  		});
  	}