Added code to reuse the signal fds and avoid fd close

Bug 15436535

Change-Id: Ica5b1915dd94699eb19c57b6904154493b0cc08c
diff --git a/btif/src/btif_hl.c b/btif/src/btif_hl.c
index 3d77856..300a1da 100644
--- a/btif/src/btif_hl.c
+++ b/btif/src/btif_hl.c
@@ -89,7 +89,7 @@
 static int listen_s = -1;
 static int connected_s = -1;
 static int select_thread_id = -1;
-static int signal_fds[2];
+static int signal_fds[2] = { -1, -1 };
 static BUFFER_Q soc_queue;
 static int reg_counter;
 
@@ -4891,8 +4891,8 @@
 **
 *******************************************************************************/
 static inline int btif_hl_select_wakeup_init(fd_set* set){
-    BTIF_TRACE_DEBUG("btif_hl_select_wakeup_init");
-    if (socketpair(AF_UNIX, SOCK_STREAM, 0, signal_fds) < 0)
+    BTIF_TRACE_DEBUG0("btif_hl_select_wakeup_init");
+    if (signal_fds[0] == -1 && socketpair(AF_UNIX, SOCK_STREAM, 0, signal_fds) < 0)
     {
         BTIF_TRACE_ERROR("socketpair failed: %s", strerror(errno));
         return -1;
@@ -4958,17 +4958,6 @@
             select_thread_id = -1;
         }
     }
-   /* Cleanup signal sockets */
-    if(signal_fds[0] != -1)
-    {
-        close(signal_fds[0]);
-        signal_fds[0] = -1;
-    }
-    if(signal_fds[1] != -1)
-    {
-        close(signal_fds[1]);
-        signal_fds[1] = -1;
-    }
     return result;
 }