diff --git a/src/drivers/protocol_splitter/protocol_splitter.cpp b/src/drivers/protocol_splitter/protocol_splitter.cpp index 0ba92dea08..e6c5d86f58 100644 --- a/src/drivers/protocol_splitter/protocol_splitter.cpp +++ b/src/drivers/protocol_splitter/protocol_splitter.cpp @@ -47,6 +47,7 @@ #include #include #include +#include #include #include @@ -220,6 +221,8 @@ DevCommon::DevCommon(const char *device_path) DevCommon::~DevCommon() { if (_fd >= 0) { + /* discard all pending data, as close() might block otherwise on NuttX with flow control enabled */ + tcflush(_fd, TCIOFLUSH); ::close(_fd); } }