From d89eec809e2d25aee8d386186653699f5017b15b Mon Sep 17 00:00:00 2001 From: "mark@chromium.org" Date: Tue, 3 Dec 2013 14:10:59 +0000 Subject: Don't HANDLE_EINTR(close). Either IGNORE_EINTR(close) or just close. It is incorrect to wrap close in HANDLE_EINTR on Linux. Correctness is generally undefined on Mac, but as of r223369, it is incorrect in Chrome on Mac. To avoid new offenders, a PRESUBMIT check ensures that HANDLE_EINTR is not used with close, and that IGNORE_EINTR is only used with close. Unnecessary #includes of eintr_wrapper.h are also removed. base/posix/einter_wrapper.h, PRESUBMIT.py, and ppapi/tests/test_broker.cc contain non-mechanical changes. Variable naming within the latter is updated per r178174. Missing #includes for in content/zygote/zygote_main_linux.cc and tools/android/common/daemon.cc were manually added. Mechanical changes were generated by running: sed -E -i '' \ -e 's/((=|if|return|CHECK|EXPECT|ASSERT).*)HANDLE(_EINTR\(.*close)/\1IGNORE\3/' \ -e 's/(ignore_result|void ?)\(HANDLE_EINTR\((.*close\(.*)\)\)/\2/' \ -e 's/(\(void\) ?)?HANDLE_EINTR\((.*close\(.*)\)/\2/' \ $(git grep -El 'HANDLE_EINTR.*close') sed -E -i '' -e '/#include.*eintr_wrapper\.h"/d' \ $(grep -EL '(HANDLE|IGNORE)_EINTR' \ $(git grep -El '#include.*eintr_wrapper\.h"')) BUG=269623 R=agl@chromium.org, jln@chromium.org TBR=OWNERS Review URL: https://codereview.chromium.org/100253002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@238390 0039d316-1c4b-4281-b951-d872f2087c98 --- base/message_loop/message_loop_unittest.cc | 8 ++++---- base/message_loop/message_pump_io_ios_unittest.cc | 4 ++-- base/message_loop/message_pump_libevent.cc | 4 ++-- base/message_loop/message_pump_libevent_unittest.cc | 4 ++-- 4 files changed, 10 insertions(+), 10 deletions(-) (limited to 'base/message_loop') diff --git a/base/message_loop/message_loop_unittest.cc b/base/message_loop/message_loop_unittest.cc index f378db2..e6d25ece 100644 --- a/base/message_loop/message_loop_unittest.cc +++ b/base/message_loop/message_loop_unittest.cc @@ -944,9 +944,9 @@ TEST(MessageLoopTest, FileDescriptorWatcherOutlivesMessageLoop) { // and don't run the message loop, just destroy it. } } - if (HANDLE_EINTR(close(pipefds[0])) < 0) + if (IGNORE_EINTR(close(pipefds[0])) < 0) PLOG(ERROR) << "close"; - if (HANDLE_EINTR(close(pipefds[1])) < 0) + if (IGNORE_EINTR(close(pipefds[1])) < 0) PLOG(ERROR) << "close"; } @@ -969,9 +969,9 @@ TEST(MessageLoopTest, FileDescriptorWatcherDoubleStop) { controller.StopWatchingFileDescriptor(); } } - if (HANDLE_EINTR(close(pipefds[0])) < 0) + if (IGNORE_EINTR(close(pipefds[0])) < 0) PLOG(ERROR) << "close"; - if (HANDLE_EINTR(close(pipefds[1])) < 0) + if (IGNORE_EINTR(close(pipefds[1])) < 0) PLOG(ERROR) << "close"; } diff --git a/base/message_loop/message_pump_io_ios_unittest.cc b/base/message_loop/message_pump_io_ios_unittest.cc index 9c7a8fb..f3b598c 100644 --- a/base/message_loop/message_pump_io_ios_unittest.cc +++ b/base/message_loop/message_pump_io_ios_unittest.cc @@ -31,9 +31,9 @@ class MessagePumpIOSForIOTest : public testing::Test { } virtual void TearDown() OVERRIDE { - if (HANDLE_EINTR(close(pipefds_[0])) < 0) + if (IGNORE_EINTR(close(pipefds_[0])) < 0) PLOG(ERROR) << "close"; - if (HANDLE_EINTR(close(pipefds_[1])) < 0) + if (IGNORE_EINTR(close(pipefds_[1])) < 0) PLOG(ERROR) << "close"; } diff --git a/base/message_loop/message_pump_libevent.cc b/base/message_loop/message_pump_libevent.cc index 6d862d1..26be687 100644 --- a/base/message_loop/message_pump_libevent.cc +++ b/base/message_loop/message_pump_libevent.cc @@ -125,11 +125,11 @@ MessagePumpLibevent::~MessagePumpLibevent() { event_del(wakeup_event_); delete wakeup_event_; if (wakeup_pipe_in_ >= 0) { - if (HANDLE_EINTR(close(wakeup_pipe_in_)) < 0) + if (IGNORE_EINTR(close(wakeup_pipe_in_)) < 0) DPLOG(ERROR) << "close"; } if (wakeup_pipe_out_ >= 0) { - if (HANDLE_EINTR(close(wakeup_pipe_out_)) < 0) + if (IGNORE_EINTR(close(wakeup_pipe_out_)) < 0) DPLOG(ERROR) << "close"; } event_base_free(event_base_); diff --git a/base/message_loop/message_pump_libevent_unittest.cc b/base/message_loop/message_pump_libevent_unittest.cc index 52ca95b..bf6d21c 100644 --- a/base/message_loop/message_pump_libevent_unittest.cc +++ b/base/message_loop/message_pump_libevent_unittest.cc @@ -30,9 +30,9 @@ class MessagePumpLibeventTest : public testing::Test { } virtual void TearDown() OVERRIDE { - if (HANDLE_EINTR(close(pipefds_[0])) < 0) + if (IGNORE_EINTR(close(pipefds_[0])) < 0) PLOG(ERROR) << "close"; - if (HANDLE_EINTR(close(pipefds_[1])) < 0) + if (IGNORE_EINTR(close(pipefds_[1])) < 0) PLOG(ERROR) << "close"; } -- cgit v1.1