OSDN Git Service
(root)
/
android-x86
/
external-llvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rollback "[Support] Add RetryAfterSignal helper function"
[android-x86/external-llvm.git]
/
lib
/
Support
/
MemoryBuffer.cpp
diff --git
a/lib/Support/MemoryBuffer.cpp
b/lib/Support/MemoryBuffer.cpp
index
d8cc853
..
2fd3159
100644
(file)
--- a/
lib/Support/MemoryBuffer.cpp
+++ b/
lib/Support/MemoryBuffer.cpp
@@
-216,9
+216,11
@@
getMemoryBufferForStream(int FD, const Twine &BufferName) {
// Read into Buffer until we hit EOF.
do {
Buffer.reserve(Buffer.size() + ChunkSize);
// Read into Buffer until we hit EOF.
do {
Buffer.reserve(Buffer.size() + ChunkSize);
- ReadBytes = sys::RetryAfterSignal(-1, read, FD, Buffer.end(), ChunkSize);
- if (ReadBytes == -1)
+ ReadBytes = read(FD, Buffer.end(), ChunkSize);
+ if (ReadBytes == -1) {
+ if (errno == EINTR) continue;
return std::error_code(errno, std::generic_category());
return std::error_code(errno, std::generic_category());
+ }
Buffer.set_size(Buffer.size() + ReadBytes);
} while (ReadBytes != 0);
Buffer.set_size(Buffer.size() + ReadBytes);
} while (ReadBytes != 0);
@@
-470,12
+472,13
@@
getOpenFileImpl(int FD, const Twine &Filename, uint64_t FileSize,
while (BytesLeft) {
#ifdef HAVE_PREAD
while (BytesLeft) {
#ifdef HAVE_PREAD
- ssize_t NumRead = sys::RetryAfterSignal(-1, ::pread, FD, BufPtr, BytesLeft,
- MapSize - BytesLeft + Offset);
+ ssize_t NumRead = ::pread(FD, BufPtr, BytesLeft, MapSize-BytesLeft+Offset);
#else
#else
- ssize_t NumRead =
sys::RetryAfterSignal(-1, ::read,
FD, BufPtr, BytesLeft);
+ ssize_t NumRead =
::read(
FD, BufPtr, BytesLeft);
#endif
if (NumRead == -1) {
#endif
if (NumRead == -1) {
+ if (errno == EINTR)
+ continue;
// Error while reading.
return std::error_code(errno, std::generic_category());
}
// Error while reading.
return std::error_code(errno, std::generic_category());
}