fixed at least 1 bug in the uart handling code and cleaned it up a lot
diff --git a/bbb_cape/src/bbb/uart_reader.cc b/bbb_cape/src/bbb/uart_reader.cc
index 7b00c00..03cd248 100644
--- a/bbb_cape/src/bbb/uart_reader.cc
+++ b/bbb_cape/src/bbb/uart_reader.cc
@@ -52,8 +52,12 @@
if (fd_ > 0) close(fd_);
}
-int UartReader::ReadBytes(AlignedChar *dest, size_t max_bytes) {
- return read(fd_, dest, max_bytes);
+ssize_t UartReader::ReadBytes(AlignedChar *dest, size_t max_bytes) {
+ do {
+ ssize_t r = read(fd_, dest, max_bytes);
+ if (r != -1) return r;
+ } while (errno == EINTR);
+ return -1;
}
} // namespace bbb