diff options
author | Bruce Momjian <bruce@momjian.us> | 2004-03-10 21:12:49 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 2004-03-10 21:12:49 +0000 |
commit | 60a068b3897a27cbb1a13a6b050d05a0ca479055 (patch) | |
tree | 145b28e9421e24a29df2f9c3ff188af3d98800cf /src/port/noblock.c | |
parent | ae22a6c185bb82deb9fe547641969396cc3648b9 (diff) | |
download | postgresql-60a068b3897a27cbb1a13a6b050d05a0ca479055.tar.gz postgresql-60a068b3897a27cbb1a13a6b050d05a0ca479055.zip |
Move non-blocking code into its own /port file, for code clarity.
Diffstat (limited to 'src/port/noblock.c')
-rw-r--r-- | src/port/noblock.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/src/port/noblock.c b/src/port/noblock.c new file mode 100644 index 00000000000..b7067549cdd --- /dev/null +++ b/src/port/noblock.c @@ -0,0 +1,35 @@ +/*------------------------------------------------------------------------- + * + * noblock.c + * set a file descriptor as non-blocking + * + * Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group + * Portions Copyright (c) 1994, Regents of the University of California + * + * IDENTIFICATION + * $PostgreSQL: pgsql/src/port/noblock.c,v 1.1 2004/03/10 21:12:49 momjian Exp $ + * + *------------------------------------------------------------------------- + */ + +#include "postgres.h" + +#include <sys/types.h> +#include <fcntl.h> + +bool set_noblock(int sock) +{ +#if !defined(WIN32) && !defined(__BEOS__) + return (fcntl(sock, F_SETFL, O_NONBLOCK) != -1); +#else + long ioctlsocket_ret = 1; + + /* Returns non-0 on failure, while fcntl() returns -1 on failure */ +#ifdef WIN32 + return (ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0); +#endif +#ifdef __BEOS__ + return (ioctl(sock, FIONBIO, &ioctlsocket_ret) == 0); +#endif +#endif +} |