fixed select usage
diff --git a/bbb_cape/src/bbb/uart_reader.cc b/bbb_cape/src/bbb/uart_reader.cc
index 34b907b..9abb284 100644
--- a/bbb_cape/src/bbb/uart_reader.cc
+++ b/bbb_cape/src/bbb/uart_reader.cc
@@ -84,9 +84,6 @@
     LOG(FATAL, "aos_uart_reader_set_tty_options(%d) failed with %d: %s\n",
         fd_, errno, strerror(errno));
   }
-
-  FD_ZERO(&fd_set_);
-  FD_SET(fd_, &fd_set_);
 }
 
 UartReader::~UartReader() {
@@ -99,7 +96,10 @@
     ::aos::time::Time timeout = timeout_time - ::aos::time::Time::Now();
     if (timeout < ::aos::time::Time(0, 0)) return -2;
     struct timeval timeout_timeval = timeout.ToTimeval();
-    switch (select(fd_ + 1, &fd_set_, NULL, NULL, &timeout_timeval)) {
+		fd_set fds;
+		FD_ZERO(&fds);
+		FD_SET(fd_, &fds);
+    switch (select(fd_ + 1, &fds, NULL, NULL, &timeout_timeval)) {
       case 0:
         return -2;
       case -1:
diff --git a/bbb_cape/src/bbb/uart_reader.h b/bbb_cape/src/bbb/uart_reader.h
index a6cf34c..a8edc6e 100644
--- a/bbb_cape/src/bbb/uart_reader.h
+++ b/bbb_cape/src/bbb/uart_reader.h
@@ -23,8 +23,6 @@
 
  private:
   const int fd_;
-  // Gets initialized to only contain fd_.
-  fd_set fd_set_;
 
   DISALLOW_COPY_AND_ASSIGN(UartReader);
 };