PostgreSQL Source Code git master
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
noblock.c File Reference
#include "c.h"
#include <fcntl.h>
Include dependency graph for noblock.c:

Go to the source code of this file.

Functions

bool pg_set_noblock (pgsocket sock)
 
bool pg_set_block (pgsocket sock)
 

Function Documentation

◆ pg_set_block()

bool pg_set_block ( pgsocket  sock)

Definition at line 49 of file noblock.c.

50{
51#if !defined(WIN32)
52 int flags;
53
54 flags = fcntl(sock, F_GETFL);
55 if (flags < 0)
56 return false;
57 if (fcntl(sock, F_SETFL, (flags & ~O_NONBLOCK)) == -1)
58 return false;
59 return true;
60#else
61 unsigned long ioctlsocket_ret = 0;
62
63 /* Returns non-0 on failure, while fcntl() returns -1 on failure */
64 return (ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0);
65#endif
66}

◆ pg_set_noblock()

bool pg_set_noblock ( pgsocket  sock)

Definition at line 25 of file noblock.c.

26{
27#if !defined(WIN32)
28 int flags;
29
30 flags = fcntl(sock, F_GETFL);
31 if (flags < 0)
32 return false;
33 if (fcntl(sock, F_SETFL, (flags | O_NONBLOCK)) == -1)
34 return false;
35 return true;
36#else
37 unsigned long ioctlsocket_ret = 1;
38
39 /* Returns non-0 on failure, while fcntl() returns -1 on failure */
40 return (ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0);
41#endif
42}

Referenced by pq_init(), PQconnectPoll(), and report_fork_failure_to_client().