diff options
author | Thomas Radke <tradke@aei.mpg.de> | 2000-10-28 18:51:03 (GMT) |
---|---|---|
committer | Thomas Radke <tradke@aei.mpg.de> | 2000-10-28 18:51:03 (GMT) |
commit | f39c5d79852aaf2511849c5265e9ee3bc91d4fba (patch) | |
tree | ff4580ce55c68e194a15ac51d48f7582266c825a /src/H5Tconv.c | |
parent | 78365de55f2cf1859bcfbb4cfba486d3c9478760 (diff) | |
download | hdf5-f39c5d79852aaf2511849c5265e9ee3bc91d4fba.zip hdf5-f39c5d79852aaf2511849c5265e9ee3bc91d4fba.tar.gz hdf5-f39c5d79852aaf2511849c5265e9ee3bc91d4fba.tar.bz2 |
[svn-r2746]
Purpose:
Port to Windows platform
Bug fix
Description:
The Stream VFD is ported to Windows now.
Also fixed a bug where an application terminated when it got a SIGPIPE
due to sending/receiving on a closed socket.
Solution:
The socket stuff is treated different under Windows when using
the MS compilers to build HDF5. They define their own socket datatype
and have closesocket() instead of close(2) to close sockets.
Also there are different header files for all the socket stuff.
So I introduced my own socket decriptor datatype in H5FDstream.h
which should be used to pass in external sockets. This datatype
is mapped to either 'int' (UNIX-type sockets) or 'SOCKET' (Windows).
In the code the error code checking was adapted according to the
socket datatype used. Also, for Windows you have to call a routine
to initialize the Socket layer before using it.
As a kind of bug fix, the process signal mask is now set to ignore
SIGPIPE signals which otherwise cause the application to terminate.
The driver read/write routines catch this and return an error code.
Platforms tested:
Windows NT, both with MS Visual C++ compiler and with GNU cc
It is interesting that when compiling with GNU cc under Windows
it is possible to use both Windows and UNIX-type sockets (either
one or the other). So I check for GNU cc and go for UNIX sockets
if possible.
Diffstat (limited to 'src/H5Tconv.c')
0 files changed, 0 insertions, 0 deletions