From 1c3f30be0140379d660b8ab18746fdb6f677a364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Thu, 17 Jun 2021 12:07:39 +0200 Subject: [PATCH] protocol_splitter: tcflush() uart before closing it --- src/drivers/protocol_splitter/protocol_splitter.cpp | 3 +++ 1 file changed, 3 insertions(+) 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); } }