/*------------------------------------------------------------------------- * * 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-server/src/port/copydir.c,v 1.8 2004/02/23 23:03:10 tgl Exp $ * *------------------------------------------------------------------------- */ #include "postgres.h" #include #include 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 }