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 GitHub
parent 7b68c5dbfc
commit 1aad8b6ec9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 7 deletions

View File

@ -355,12 +355,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

@ -337,13 +337,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;
}

View File

@ -268,8 +268,9 @@ ssize_t SerialImpl::write(const void *buffer, size_t buffer_size)
int ret_write = qurt_uart_write(_serial_fd, (const char *) buffer, buffer_size);
if (ret_write < 0) {
PX4_ERR("%s write error %d", _port, ret_write);
if (errno != EAGAIN) {
PX4_ERR("%s write error %d", _port, ret_write);
}
}
return ret_write;