diff options
author | Thomas Radke <tradke@aei.mpg.de> | 2000-11-05 03:12:37 (GMT) |
---|---|---|
committer | Thomas Radke <tradke@aei.mpg.de> | 2000-11-05 03:12:37 (GMT) |
commit | fd36aa4b6700c1a452d8bfd1d48148767f7a7e37 (patch) | |
tree | a5fa6ae3d2fb59e52edcd83e9e8d8e33e2f1734e | |
parent | 3e9676aed5358a28aaf7ccc35e1b499f2a279f9c (diff) | |
download | hdf5-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.c | 4 |
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; } |