diff options
Diffstat (limited to 'udrv/ulinux/uipc.c')
-rw-r--r-- | udrv/ulinux/uipc.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/udrv/ulinux/uipc.c b/udrv/ulinux/uipc.c index 8e3d4513e..8f7fd43eb 100644 --- a/udrv/ulinux/uipc.c +++ b/udrv/ulinux/uipc.c @@ -184,7 +184,7 @@ static int accept_server_socket(int sfd) pfd.fd = sfd; pfd.events = POLLIN; - if (poll(&pfd, 1, 0) == 0) + if (TEMP_FAILURE_RETRY(poll(&pfd, 1, 0)) == 0) { BTIF_TRACE_EVENT("accept poll timeout"); return -1; @@ -192,7 +192,7 @@ static int accept_server_socket(int sfd) //BTIF_TRACE_EVENT("poll revents 0x%x", pfd.revents); - if ((fd = accept(sfd, (struct sockaddr *)&remote, &len)) == -1) + if ((fd = TEMP_FAILURE_RETRY(accept(sfd, (struct sockaddr *)&remote, &len))) == -1) { BTIF_TRACE_ERROR("sock accept failed (%s)", strerror(errno)); return -1; @@ -330,7 +330,7 @@ static void uipc_check_interrupt_locked(void) { char sig_recv = 0; //BTIF_TRACE_EVENT("UIPC INTERRUPT"); - recv(uipc_main.signal_fds[0], &sig_recv, sizeof(sig_recv), MSG_WAITALL); + TEMP_FAILURE_RETRY(recv(uipc_main.signal_fds[0], &sig_recv, sizeof(sig_recv), MSG_WAITALL)); } } @@ -338,7 +338,7 @@ static inline void uipc_wakeup_locked(void) { char sig_on = 1; BTIF_TRACE_EVENT("UIPC SEND WAKE UP"); - send(uipc_main.signal_fds[1], &sig_on, sizeof(sig_on), 0); + TEMP_FAILURE_RETRY(send(uipc_main.signal_fds[1], &sig_on, sizeof(sig_on), 0)); } static int uipc_setup_server_locked(tUIPC_CH_ID ch_id, char *name, tUIPC_RCV_CBACK *cback) @@ -394,7 +394,7 @@ static void uipc_flush_ch_locked(tUIPC_CH_ID ch_id) while (1) { - ret = poll(&pfd, 1, 1); + ret = TEMP_FAILURE_RETRY(poll(&pfd, 1, 1)); BTIF_TRACE_VERBOSE("%s() - polling fd %d, revents: 0x%x, ret %d", __FUNCTION__, pfd.fd, pfd.revents, ret); @@ -412,7 +412,7 @@ static void uipc_flush_ch_locked(tUIPC_CH_ID ch_id) /* read sufficiently large buffer to ensure flush empties socket faster than it is getting refilled */ - read(pfd.fd, &buf, UIPC_FLUSH_BUFFER_SIZE); + TEMP_FAILURE_RETRY(read(pfd.fd, &buf, UIPC_FLUSH_BUFFER_SIZE)); } } @@ -503,7 +503,7 @@ static void uipc_read_task(void *arg) { uipc_main.read_set = uipc_main.active_set; - result = select(uipc_main.max_fd+1, &uipc_main.read_set, NULL, NULL, NULL); + result = TEMP_FAILURE_RETRY(select(uipc_main.max_fd+1, &uipc_main.read_set, NULL, NULL, NULL)); if (result == 0) { @@ -723,7 +723,7 @@ BOOLEAN UIPC_Send(tUIPC_CH_ID ch_id, UINT16 msg_evt, UINT8 *p_buf, UIPC_LOCK(); - if (write(uipc_main.ch[ch_id].fd, p_buf, msglen) < 0) + if (TEMP_FAILURE_RETRY(write(uipc_main.ch[ch_id].fd, p_buf, msglen)) < 0) { BTIF_TRACE_ERROR("failed to write (%s)", strerror(errno)); } @@ -792,7 +792,7 @@ UINT32 UIPC_Read(tUIPC_CH_ID ch_id, UINT16 *p_msg_evt, UINT8 *p_buf, UINT32 len) /* make sure there is data prior to attempting read to avoid blocking a read for more than poll timeout */ - if (poll(&pfd, 1, uipc_main.ch[ch_id].read_poll_tmo_ms) == 0) + if (TEMP_FAILURE_RETRY(poll(&pfd, 1, uipc_main.ch[ch_id].read_poll_tmo_ms)) == 0) { BTIF_TRACE_EVENT("poll timeout (%d ms)", uipc_main.ch[ch_id].read_poll_tmo_ms); break; @@ -809,7 +809,7 @@ UINT32 UIPC_Read(tUIPC_CH_ID ch_id, UINT16 *p_msg_evt, UINT8 *p_buf, UINT32 len) return 0; } - n = recv(fd, p_buf+n_read, len-n_read, 0); + n = TEMP_FAILURE_RETRY(recv(fd, p_buf+n_read, len-n_read, 0)); //BTIF_TRACE_EVENT("read %d bytes", n); |