final synchronized byte[] getSettingsFrameForPending() {
checkSend();
int payloadSize = pending.size() * 6;
byte[] result = new byte[9 + payloadSize];
ByteUtil.setThreeBytes(result, 0, payloadSize);
result[3] = FrameType.SETTINGS.getIdByte();
int pos = 9;
for (Map.Entry<Setting,Long> setting : pending.entrySet()) {
ByteUtil.setTwoBytes(result, pos, setting.getKey().getId());
pos += 2;
ByteUtil.setFourBytes(result, pos, setting.getValue().longValue());
pos += 4;
}
sendInProgress = true;
return result;
}