| Index: runtime/bin/eventhandler_linux.cc
|
| diff --git a/runtime/bin/eventhandler_linux.cc b/runtime/bin/eventhandler_linux.cc
|
| index f87c1a4785192c81740d7c08db2b1a48e2f0fef7..d44486ecf5cdf853527d60f4b7433808ebf896a8 100644
|
| --- a/runtime/bin/eventhandler_linux.cc
|
| +++ b/runtime/bin/eventhandler_linux.cc
|
| @@ -20,7 +20,7 @@
|
| #include "bin/dartutils.h"
|
| #include "bin/fdutils.h"
|
| #include "bin/log.h"
|
| -#include "platform/hashmap.h"
|
| +#include "bin/socket.h"
|
| #include "platform/thread.h"
|
| #include "platform/utils.h"
|
|
|
| @@ -49,10 +49,10 @@ intptr_t SocketData::GetPollEvents() {
|
|
|
| // Unregister the file descriptor for a SocketData structure with epoll.
|
| static void RemoveFromEpollInstance(intptr_t epoll_fd_, SocketData* sd) {
|
| - VOID_TEMP_FAILURE_RETRY(epoll_ctl(epoll_fd_,
|
| - EPOLL_CTL_DEL,
|
| - sd->fd(),
|
| - NULL));
|
| + VOID_NO_RETRY_EXPECTED(epoll_ctl(epoll_fd_,
|
| + EPOLL_CTL_DEL,
|
| + sd->fd(),
|
| + NULL));
|
| }
|
|
|
|
|
| @@ -60,10 +60,10 @@ static void AddToEpollInstance(intptr_t epoll_fd_, SocketData* sd) {
|
| struct epoll_event event;
|
| event.events = sd->GetPollEvents();
|
| event.data.ptr = sd;
|
| - int status = TEMP_FAILURE_RETRY(epoll_ctl(epoll_fd_,
|
| - EPOLL_CTL_ADD,
|
| - sd->fd(),
|
| - &event));
|
| + int status = NO_RETRY_EXPECTED(epoll_ctl(epoll_fd_,
|
| + EPOLL_CTL_ADD,
|
| + sd->fd(),
|
| + &event));
|
| if (status == -1) {
|
| // Epoll does not accept the file descriptor. It could be due to
|
| // already closed file descriptor, or unuspported devices, such
|
| @@ -77,7 +77,7 @@ static void AddToEpollInstance(intptr_t epoll_fd_, SocketData* sd) {
|
| EventHandlerImplementation::EventHandlerImplementation()
|
| : socket_map_(&HashMap::SamePointerValue, 16) {
|
| intptr_t result;
|
| - result = TEMP_FAILURE_RETRY(pipe(interrupt_fds_));
|
| + result = NO_RETRY_EXPECTED(pipe(interrupt_fds_));
|
| if (result != 0) {
|
| FATAL("Pipe creation failed");
|
| }
|
| @@ -88,7 +88,7 @@ EventHandlerImplementation::EventHandlerImplementation()
|
| // The initial size passed to epoll_create is ignore on newer (>=
|
| // 2.6.8) Linux versions
|
| static const int kEpollInitialSize = 64;
|
| - epoll_fd_ = TEMP_FAILURE_RETRY(epoll_create(kEpollInitialSize));
|
| + epoll_fd_ = NO_RETRY_EXPECTED(epoll_create(kEpollInitialSize));
|
| if (epoll_fd_ == -1) {
|
| FATAL1("Failed creating epoll file descriptor: %i", errno);
|
| }
|
| @@ -97,24 +97,24 @@ EventHandlerImplementation::EventHandlerImplementation()
|
| struct epoll_event event;
|
| event.events = EPOLLIN;
|
| event.data.ptr = NULL;
|
| - int status = TEMP_FAILURE_RETRY(epoll_ctl(epoll_fd_,
|
| - EPOLL_CTL_ADD,
|
| - interrupt_fds_[0],
|
| - &event));
|
| + int status = NO_RETRY_EXPECTED(epoll_ctl(epoll_fd_,
|
| + EPOLL_CTL_ADD,
|
| + interrupt_fds_[0],
|
| + &event));
|
| if (status == -1) {
|
| FATAL("Failed adding interrupt fd to epoll instance");
|
| }
|
| - timer_fd_ = TEMP_FAILURE_RETRY(timerfd_create(CLOCK_REALTIME, TFD_CLOEXEC));
|
| + timer_fd_ = NO_RETRY_EXPECTED(timerfd_create(CLOCK_REALTIME, TFD_CLOEXEC));
|
| if (timer_fd_ == -1) {
|
| FATAL1("Failed creating timerfd file descriptor: %i", errno);
|
| }
|
| // Register the timer_fd_ with the epoll instance.
|
| event.events = EPOLLIN;
|
| event.data.fd = timer_fd_;
|
| - status = TEMP_FAILURE_RETRY(epoll_ctl(epoll_fd_,
|
| - EPOLL_CTL_ADD,
|
| - timer_fd_,
|
| - &event));
|
| + status = NO_RETRY_EXPECTED(epoll_ctl(epoll_fd_,
|
| + EPOLL_CTL_ADD,
|
| + timer_fd_,
|
| + &event));
|
| if (status == -1) {
|
| FATAL2(
|
| "Failed adding timerfd fd(%i) to epoll instance: %i", timer_fd_, errno);
|
| @@ -184,7 +184,8 @@ void EventHandlerImplementation::HandleInterruptFd() {
|
| it.it_value.tv_sec = millis / 1000;
|
| it.it_value.tv_nsec = (millis % 1000) * 1000000;
|
| }
|
| - timerfd_settime(timer_fd_, TFD_TIMER_ABSTIME, &it, NULL);
|
| + VOID_NO_RETRY_EXPECTED(
|
| + timerfd_settime(timer_fd_, TFD_TIMER_ABSTIME, &it, NULL));
|
| } else if (msg[i].id == kShutdownId) {
|
| shutdown_ = true;
|
| } else {
|
| @@ -192,11 +193,11 @@ void EventHandlerImplementation::HandleInterruptFd() {
|
| if ((msg[i].data & (1 << kShutdownReadCommand)) != 0) {
|
| ASSERT(msg[i].data == (1 << kShutdownReadCommand));
|
| // Close the socket for reading.
|
| - shutdown(sd->fd(), SHUT_RD);
|
| + VOID_NO_RETRY_EXPECTED(shutdown(sd->fd(), SHUT_RD));
|
| } else if ((msg[i].data & (1 << kShutdownWriteCommand)) != 0) {
|
| ASSERT(msg[i].data == (1 << kShutdownWriteCommand));
|
| // Close the socket for writing.
|
| - shutdown(sd->fd(), SHUT_WR);
|
| + VOID_NO_RETRY_EXPECTED(shutdown(sd->fd(), SHUT_WR));
|
| } else if ((msg[i].data & (1 << kCloseCommand)) != 0) {
|
| ASSERT(msg[i].data == (1 << kCloseCommand));
|
| // Close the socket and free system resources and move on to
|
|
|