diff options
author | Julien Chaffraix <julien.chaffraix@gmail.com> | 2011-04-30 16:13:22 -0700 |
---|---|---|
committer | Michael Meeks <michael.meeks@novell.com> | 2011-05-03 10:21:43 +0100 |
commit | 3f40d4b1862aab3a7d0bc54f005ff9816c6927d2 (patch) | |
tree | 1c4e3e8d2199f6667d3995618c427826dd60789e | |
parent | 55edd4058251c1bc5528e09151026cd9229d92a7 (diff) |
Handled EINTR in safeWrite.
This makes us match safeRead's behavior. Spotted by Michael Meeks.
-rw-r--r-- | sal/osl/unx/readwrite_helper.c | 7 |
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; } |