YugabyteDB (2.13.0.0-b42, bfc6a6643e7399ac8a0e81d06a3ee6d6571b33ab)

Coverage Report

Created: 2022-03-09 17:30

/Users/deen/code/yugabyte-db/build/debugcov-clang-dynamic-arm64-ninja/postgres_build/src/interfaces/libpq/noblock.c
Line
Count
Source (jump to first uncovered line)
1
/*-------------------------------------------------------------------------
2
 *
3
 * noblock.c
4
 *    set a file descriptor as blocking or non-blocking
5
 *
6
 * Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
7
 * Portions Copyright (c) 1994, Regents of the University of California
8
 *
9
 * IDENTIFICATION
10
 *    src/port/noblock.c
11
 *
12
 *-------------------------------------------------------------------------
13
 */
14
15
#include "c.h"
16
17
#include <fcntl.h>
18
19
20
/*
21
 * Put socket into nonblock mode.
22
 * Returns true on success, false on failure.
23
 */
24
bool
25
pg_set_noblock(pgsocket sock)
26
2.87k
{
27
2.87k
#if !defined(WIN32)
28
2.87k
  int     flags;
29
30
2.87k
  flags = fcntl(sock, F_GETFL);
31
2.87k
  if (flags < 0)
32
0
    return false;
33
2.87k
  if (fcntl(sock, F_SETFL, (flags | O_NONBLOCK)) == -1)
34
0
    return false;
35
2.87k
  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
2.87k
}
43
44
/*
45
 * Put socket into blocking mode.
46
 * Returns true on success, false on failure.
47
 */
48
bool
49
pg_set_block(pgsocket sock)
50
0
{
51
0
#if !defined(WIN32)
52
0
  int     flags;
53
54
0
  flags = fcntl(sock, F_GETFL);
55
0
  if (flags < 0)
56
0
    return false;
57
0
  if (fcntl(sock, F_SETFL, (flags & ~O_NONBLOCK)) == -1)
58
0
    return false;
59
0
  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
0
}