PostgreSQL Source Code: src/port/noblock.c Source File (original) (raw)

Go to the documentation of this file.

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15#include "c.h"

16

17#include <fcntl.h>

18

19

20

21

22

23

24bool

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

40 return (ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0);

41#endif

42}

43

44

45

46

47

48bool

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

64 return (ioctlsocket(sock, FIONBIO, &ioctlsocket_ret) == 0);

65#endif

66}

bool pg_set_noblock(pgsocket sock)

bool pg_set_block(pgsocket sock)