diff options
Diffstat (limited to 'src/common/linux')
-rw-r--r-- | src/common/linux/eintr_wrapper.h | 19 | ||||
-rw-r--r-- | src/common/linux/memory_mapped_file_unittest.cc | 1 |
2 files changed, 15 insertions, 5 deletions
diff --git a/src/common/linux/eintr_wrapper.h b/src/common/linux/eintr_wrapper.h index 20b6bed1..35e5e245 100644 --- a/src/common/linux/eintr_wrapper.h +++ b/src/common/linux/eintr_wrapper.h @@ -37,11 +37,22 @@ // #define HANDLE_EINTR(x) ({ \ - typeof(x) __eintr_result__; \ + typeof(x) eintr_wrapper_result; \ do { \ - __eintr_result__ = x; \ - } while (__eintr_result__ == -1 && errno == EINTR); \ - __eintr_result__;\ + eintr_wrapper_result = (x); \ + } while (eintr_wrapper_result == -1 && errno == EINTR); \ + eintr_wrapper_result; \ +}) + +#define IGNORE_EINTR(x) ({ \ + typeof(x) eintr_wrapper_result; \ + do { \ + eintr_wrapper_result = (x); \ + if (eintr_wrapper_result == -1 && errno == EINTR) { \ + eintr_wrapper_result = 0; \ + } \ + } while (0); \ + eintr_wrapper_result; \ }) #endif // COMMON_LINUX_EINTR_WRAPPER_H_ diff --git a/src/common/linux/memory_mapped_file_unittest.cc b/src/common/linux/memory_mapped_file_unittest.cc index 7c34e708..4fa50cf9 100644 --- a/src/common/linux/memory_mapped_file_unittest.cc +++ b/src/common/linux/memory_mapped_file_unittest.cc @@ -37,7 +37,6 @@ #include <string> #include "breakpad_googletest_includes.h" -#include "common/linux/eintr_wrapper.h" #include "common/linux/memory_mapped_file.h" #include "common/tests/auto_tempdir.h" #include "common/tests/file_utils.h" |