summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Radke <tradke@aei.mpg.de>2000-11-05 03:12:37 (GMT)
committerThomas Radke <tradke@aei.mpg.de>2000-11-05 03:12:37 (GMT)
commitfd36aa4b6700c1a452d8bfd1d48148767f7a7e37 (patch)
treea5fa6ae3d2fb59e52edcd83e9e8d8e33e2f1734e
parent3e9676aed5358a28aaf7ccc35e1b499f2a279f9c (diff)
downloadhdf5-fd36aa4b6700c1a452d8bfd1d48148767f7a7e37.zip
hdf5-fd36aa4b6700c1a452d8bfd1d48148767f7a7e37.tar.gz
hdf5-fd36aa4b6700c1a452d8bfd1d48148767f7a7e37.tar.bz2
[svn-r2803]
Purpose: Bugfix Description: Large data files were truncated at the receiver's side. Solution: Check against EWOULDBLOCK when sending the data and retry. Platforms tested: T3E (other platforms had no such problem).
-rw-r--r--src/H5FDstream.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/H5FDstream.c b/src/H5FDstream.c
index 733a550..e27a21f 100644
--- a/src/H5FDstream.c
+++ b/src/H5FDstream.c
@@ -536,7 +536,7 @@ static void H5FDstream_read_from_socket (H5FD_stream_t *stream,
/* now receive the next chunk of data */
size = recv (stream->socket, ptr, max_size, 0);
- if (size < 0 && (EINTR == errno || EAGAIN == errno))
+ if (size < 0 && (EINTR == errno || EAGAIN == errno || EWOULDBLOCK))
{
continue;
}
@@ -806,7 +806,7 @@ static herr_t H5FD_stream_flush (H5FD_t *_stream)
while (size)
{
bytes_send = send (sock, ptr, size, 0);
- if (bytes_send < 0 && (EINTR == errno || EAGAIN == errno))
+ if (bytes_send < 0 && (EINTR == errno || EAGAIN == errno || EWOULDBLOCK))
{
continue;
}