summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJulien Chaffraix <julien.chaffraix@gmail.com>2011-04-30 16:13:22 -0700
committerMichael Meeks <michael.meeks@novell.com>2011-05-03 10:21:43 +0100
commit3f40d4b1862aab3a7d0bc54f005ff9816c6927d2 (patch)
tree1c4e3e8d2199f6667d3995618c427826dd60789e
parent55edd4058251c1bc5528e09151026cd9229d92a7 (diff)
Handled EINTR in safeWrite.
This makes us match safeRead's behavior. Spotted by Michael Meeks.
-rw-r--r--sal/osl/unx/readwrite_helper.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/sal/osl/unx/readwrite_helper.c b/sal/osl/unx/readwrite_helper.c
index 41aa41e77..51e1ec6b6 100644
--- a/sal/osl/unx/readwrite_helper.c
+++ b/sal/osl/unx/readwrite_helper.c
@@ -39,9 +39,14 @@ sal_Bool safeWrite(int fd, void* data, sal_uInt32 dataSize)
OSL_ASSERT(dataSize == (sal_uInt32)nToWrite);
while ( nToWrite ) {
sal_Int32 nWritten = write(fd, data, nToWrite);
- if ( nWritten < 0 )
+ if ( nWritten < 0 ) {
+ if ( errno == EINTR )
+ continue;
+
return sal_False;
+ }
+
OSL_ASSERT(nWritten > 0);
nToWrite -= nWritten;
}