1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
/*-
* Copyright (c) 2014-2016 MongoDB, Inc.
* Copyright (c) 2008-2014 WiredTiger, Inc.
* All rights reserved.
*
* See the file LICENSE for redistribution information.
*/
/*
* __wt_cond_wait --
* Wait on a mutex, optionally timing out.
*/
static inline void
__wt_cond_wait(WT_SESSION_IMPL *session, WT_CONDVAR *cond, uint64_t usecs)
{
bool notused;
__wt_cond_wait_signal(session, cond, usecs, ¬used);
}
/*
* __wt_hex --
* Convert a byte to a hex character.
*/
static inline u_char
__wt_hex(int c)
{
return ((u_char)"0123456789abcdef"[c]);
}
/*
* __wt_strdup --
* ANSI strdup function.
*/
static inline int
__wt_strdup(WT_SESSION_IMPL *session, const char *str, void *retp)
{
return (__wt_strndup(
session, str, (str == NULL) ? 0 : strlen(str), retp));
}
/*
* __wt_seconds --
* Return the seconds since the Epoch.
*/
static inline void
__wt_seconds(WT_SESSION_IMPL *session, time_t *timep)
{
struct timespec t;
__wt_epoch(session, &t);
*timep = t.tv_sec;
}
/*
* __wt_verbose --
* Verbose message.
*
* Inline functions are not parsed for external prototypes, so in cases where we
* want GCC attributes attached to the functions, we have to do so explicitly.
*/
static inline void
__wt_verbose(WT_SESSION_IMPL *session, int flag, const char *fmt, ...)
WT_GCC_FUNC_DECL_ATTRIBUTE((format (printf, 3, 4)));
/*
* __wt_verbose --
* Verbose message.
*/
static inline void
__wt_verbose(WT_SESSION_IMPL *session, int flag, const char *fmt, ...)
{
#ifdef HAVE_VERBOSE
va_list ap;
if (WT_VERBOSE_ISSET(session, flag)) {
va_start(ap, fmt);
WT_IGNORE_RET(__wt_eventv(session, true, 0, NULL, 0, fmt, ap));
va_end(ap);
}
#else
WT_UNUSED(session);
WT_UNUSED(flag);
WT_UNUSED(fmt);
#endif
}
|