serial: nuttx: revert tcdrain back to fsync (#25538)

* serial: nuttx: revert tcdrain back to fsync

* serial: do not print error on EAGAIN

---------

Co-authored-by: Alexander Lerach <alexander@auterion.com>
This commit is contained in:
Jacob Dahl 2025-09-11 12:32:34 -08:00 committed by Daniel Agar
parent 5141b40e79
commit 162b7d6372
2 changed files with 10 additions and 5 deletions

View File

@ -339,12 +339,15 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
}
int written = ::write(_serial_fd, buffer, buffer_size);
tcdrain(_serial_fd); // Wait until all output is transmitted
if (written < 0) {
PX4_ERR("%s write error %d", _port, written);
if (errno != EAGAIN) {
PX4_ERR("%s write error %d", _port, written);
}
}
::fsync(_serial_fd);
return written;
}

View File

@ -325,13 +325,15 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
}
int written = ::write(_serial_fd, buffer, buffer_size);
::fsync(_serial_fd);
if (written < 0) {
PX4_ERR("%s write error %d", _port, written);
if (errno != EAGAIN) {
PX4_ERR("%s write error %d", _port, written);
}
}
::fsync(_serial_fd);
return written;
}