ESP32 xQueue, how to copy struct (memory) efficiently ?

Oh yeah something else that was rather odd showed up.

uint16_t bytesWritten = sFile.write(taskBlock.block, taskBlock.len);
if (bytesWritten != taskBlock.len) { // error
  uint8_t err = WRITE_ERROR;

This error condition got triggered repeatedly, (not always but every 2nd or 3rd time i ran the sketch.)
I usually just test if it isn't '0'

Shouldn't be possible of course, but when i started to investigate

err = bytesWritten >> 8;
xQueueSend(SdError, &err, (TickType_t) 0); 
err = bytesWritten & 0xFF;
xQueueSend(SdError, &err, (TickType_t) 0); 
err = taskBlock.len >> 8;
xQueueSend(SdError, &err, (TickType_t) 0); 
err = taskBlock.len & 0xFF;
xQueueSend(SdError, &err, (TickType_t) 0);

It disappeared and never came back again, must be something that the optimizer just didn't do quite right, another mystery :slight_smile: